硬件限制带来的设计考虑:
开发要假设网络情况糟糕的情况,可以把模拟器的在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() { @Override public 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; } }
相关推荐
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
从给定的文件信息来看,该读书笔记主要围绕着《ARM体系结构与编程》这本书的Page72内容展开,深入探讨了ARM体系结构的基本概念、特点及其发展历程。下面,我们将根据笔记中的关键信息,详细解析ARM体系结构的核心...
读书笔记——AGoodManIsHardToFind.pdf 读书笔记——AGoodManIsHardToFind.pdf 是一篇关于美国南方女作家 Flannery O'Connor 的读书笔记。该笔记主要讨论了 O'Connor 的小说《好人难寻》(A Good Man Is Hard to ...
Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...
读书笔记:数学之美读书笔记——吴军博士2020年寒假大三上学期
JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht
这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...
微观经济学读书笔记——从货币关注人民币国际化.docx