您的位置:首页 > 移动开发 > Android开发

Android 应用程序无缝设计

2016-03-02 00:54 239 查看
无缝性设计的一般问题就是,当一个应用的后台进程,如果一个Service或者一个BroadcastReceiver由于某个事件弹出一个对话框。而并不是当前用户所关注的应用程序,或者会把用户的注意力从他当前的应用(如打电话)分走。我们可以避免这些问题,就是使用Notification通知用户或者在StatusBar中显示应用的图标。

介绍一下常见的无缝性问题以及解决办法:

1,别失数据

在Android平台上随时都有可能弹出一个新的Activity(如电话来了),这样就有可能导致你的应用程序被销毁。这就有可能用户数据会丢失,当其他应用的Activity弹出时,会调用onSaveInstanceState()和onPuase()方法。在onSaveInstanceState函数中保存数据,当用户返回应用就能重新找回状态了。

2,不要暴露原始数据

使用ContentProvider提供数据接口,不要直接暴露出原始数据的格式。这就意味着,可以改变内部数据格式,而不影响通过ContentProvider提供的接口。

3,不要打断用户

如果用户正在运行一个应用(如打电话),最好认为,他就是想做这件事。就是说,不要在后台的BroadCastReceiver或者Service里面调用startActivity()。否者,就有可能打断用户,或者你的Activity接受到当前用户的输入动作,成为”按键土匪“,最终触怒用户。可以使用通知Notification或者statusBar来通知用户,用户空闲的时候点击。

4,如果有一堆事情,放到线程里。

如果你的应用需要的运行代价很高的耗时运算操作,应该把它放在一个线程中。这样会避免ANR对话框的出现。默认情况下,Activity的所有代码,包括所有View都运行在主线程中。一个事件如果没有很快速的处理完,几秒后系统就会认为应用卡主,并且提示用户是否杀掉应用。所以为了避免ANR对话框,最好把耗时操作放在一个子线程中。

5,别只用一个Activity

一个有价值的应用,应该有很多丰富的界面,当设计界面的时候要保证有多个Activity被使用了。当设计应用的时候,要把应用当做Activity对象联合,这样将会代码长时间运行中获取更多的可维护性。而且,可以与Android的应用栈和后退栈很好地协作。

6,使用系统主题

在设计UI时候,应该尝试避免过分地使用自己的风格,要使用主题,可以重载或者扩展一部分主题。至少,与其他应用一个的主题。

7,设计UI的时候考虑不同分辨率

不同Android设备支持不同的分辨率, 要保证你的Layout和Drawble足够灵活可以在不同的屏幕上显示。

8, 网速是非常慢的

Android设备有不同种类的网络链接,但是其中有一些比较慢,如果非3G的网络。

9,注意省电

一个移动设备,如果总是需要充电,就没那么方便了。最耗电的就两个地方,一个是处理器,一个是无线电。这就是为什么应用尽可能少做”事情“的原因,并且尽可能不要那么频繁的访问网络。

用户很精明:如果你的程序非常耗电,他们肯定会注意到。

========================================

参考《Android.应用开发与系统改造实战》书籍

========================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: