首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Android2高级编程读书笔记——第二章(一)

2013-08-04 
Android2高级编程读书笔记——第二章(1)硬件限制带来的设计考虑:开发要假设网络情况糟糕的情况,可以把模拟器

Android2高级编程读书笔记——第二章(1)

硬件限制带来的设计考虑:

开发要假设网络情况糟糕的情况,可以把模拟器的在run configuration选项卡中选择target找到Network Speed设置为EDGE模式

考虑用户环境:

行为得当:当应用程序不可见时,暂停UI更新和网络查找,后台运行使用Service,没有额外的UI开销

流畅的从后台切换到前台:可以通过保存程序的状态并把更新放入队列保障这点

合理:决不能抢占注意力,或打断用户当前的活动。当程序不在前台时可以使用Toast或者通知提示用户关注

呈现一致的用户界面

快速响应:

Android通过下面两个条件来确定响应性:

应用程序必须在5秒内对任何用户动作做出响应一个BroadcastReceiver必须在10秒内从它的onReceive方法返回

最有可能导致没有响应错误的原因是:网络查找、复杂计算、文件I/O。有很多方法保证这些动作不会超过响应条件,比如服务,工作线程等。

实战例子todoItem

layout文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent" ><EditText     android:id="@+id/myEditText"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="New To Do Item"    /><ListView    android:id="@+id/myListView"        android:layout_width="fill_parent"        android:layout_height="wrap_content"     /></LinearLayout>

?java文件:

package com.example.todo_list;import java.util.ArrayList;import android.os.Bundle;import android.app.Activity;import android.view.KeyEvent;import android.view.Menu;import android.view.View;import android.widget.ArrayAdapter;import android.widget.EditText;import android.widget.ListView;public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView myListView = (ListView)findViewById(R.id.myListView);        final EditText myEditText = (EditText)findViewById(R.id.myEditText);        final ArrayList<String> todoItems = new ArrayList<String>();        final ArrayAdapter<String> aa;        aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems);        myListView.setAdapter(aa);        myEditText.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if(event.getAction() == KeyEvent.ACTION_DOWN){todoItems.add(0, myEditText.getText().toString());aa.notifyDataSetChanged();myEditText.setText("");return true;}return false;}});    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }}

?

热点排行