Android 基本组件
Android 基本组件指Activity、Fragment、Service、BroadcastReceiver、
ContentProvider 等等。
1. 【强制】Activity间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable
的方式,可以考虑EventBus等替代方案,以免造成TransactionTooLargeException。
2. 【推荐】Activity#onSaveInstanceState()方法不是 Activity生命周期方法,也不保证
一定会被调用。它是用来在 Activity 被意外销毁时保存 UI 状态的,只能用于保存临
时性数据,例如 UI 控件的属性等,不能跟数据的持久化存储混为一谈。持久化存储
应该在Activity#onPause()/onStop()中实行。
3. 【强制】 Activity间通过隐式Intent的跳转,在发出Intent之前必须通过resolveActivity
检查,避免找不到合适的调用组件,造成 ActivityNotFoundException 的异常。
正例:
public void viewUrl(String url, String mimeType) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), mimeType);
if (getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_
ONLY) != null) {
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
if (Config.LOGD) {
Log.d(LOGTAG, "activity not found for " + mimeType + " over " +
Uri.parse(url). getScheme(), e);
}
}
}
}
反例:
Intent intent = new Intent();
intent.setAction("com.great.activity_intent.Intent_Demo1_Result3"); |