需要注意的问题

时间:2023-01-08 15:22:17

1.      BroadcastReceiver的onReceive()方法执行完成后,BroadcastReceiver的实例就会被销毁。如果onReceive()方法在10s内没有执行完毕,Android会认为改程序无响应。所以在BroadcastReceiver里不能做一些比较耗时的操作,否则会弹出“Application NoResponse”对话框。特别说明的是,这里不能使用子线程来解决 ,因为BroadcastReceiver的生命周期很短,子线程可能还没有结束BroadcastReceiver就先结束了。BroadcastReceiver一旦结束,此时它所在的进程很容易在系统需要内存时被优先杀死,因为它属于空进程.

如果需要处理较为复杂的过程,可以用Handler来发送消息交给主程序进程去处理

2.Android字符串判断中我以前用str1==str2来判断字符串是否相等,很坑结果肯定是false,因为这样比较的是两个地址,所以要进行字符串比较必须要用equals方法来判断,以前一直用==来判断Int和boolean类型的,谁知道String类型的比较会有这么大一个坑呢

3.不要在启动程序中设置android:launchMode="singleTask",否则程序按Home键进入后台以后,会重新启动软件,并且会保留以前的一些东西,出现页面布局问题

出错来源:我的主界面左边会拉开菜单,如果在按Home以前,我把左边的菜单打开了,再重新启动,左边的菜单会变成一片空白

4.java.lang.IndexOutOfBoundsException

在listview.addHeaderView(v)之后,记得整个的数组加了1,那么如果按照原来的setOnItemClickListener就会报数组出错,所以需要在onItemClick中添加一个判断

if ((position - 1 )> -1) {
Intent intent = new Intent(context,
newActivity.class);
intent.putExtra("data", listData.get(position - 1)
.getData_id());
startActivity(intent);
}

5.

android PopupWindow空指针异常问题 低版本的小细节

中发现原来在自定义的构造函数里面没有super(context)导致的;
6. 有用到复制到剪切板如果用:android.content.clipboardmanager,低版本就会出现系统奔溃,改用android.text.clipboardmanager即可解决问题(单纯的文字复制这个已经可以满足要求了)