监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法)
2011-01-18 13:40
871 查看
android:launchMode="singleTask" 和 onNewIntent(Intent intent)两个特性,现总结一下经验:
android:launchMode="singleTask" 配置在 Mainifest 中,它保证了栈中此Activity总是只有一个,无论你启动它多少次;
onNewIntent(Intent intent) 是Override Activity的父类方法,只有仅在点Home键退出Activity而再次启动新的Intent进来才被调用到;
它们两结合使用,可以做到监听home键(仅当发起新的Intent)。
代码如下:
Manifest.xml
Activity 中
注意: 当按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent 。
android:launchMode="singleTask" 配置在 Mainifest 中,它保证了栈中此Activity总是只有一个,无论你启动它多少次;
onNewIntent(Intent intent) 是Override Activity的父类方法,只有仅在点Home键退出Activity而再次启动新的Intent进来才被调用到;
它们两结合使用,可以做到监听home键(仅当发起新的Intent)。
代码如下:
Manifest.xml
<activity android:name=".OnNewIntentDemo" android:launchMode="singleTask" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="video/*" /> </intent-filter></activity>
Activity 中
@Override protected void onNewIntent(Intent intent) { if(DEBUG) Log.i(TAG, "onNewIntent ~~~~~~~ intent = "+intent); super.onNewIntent(intent); }
注意: 当按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent 。
相关文章推荐
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法)
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- android:launchMode="singleTask" intent获取到的值没有更新
- android Task Activity launchMode="singleTask" singleInstance 代码分析
- 一个由Activity launchMode="singleTask"属性引起的血案(Android)
- android:launchMode="singleTop"
- android:clearTaskOnLaunch="true"最白话的解释
- 【Android】 Activity启动模式singleTask的数据传输 onNewIntent方法
- android:launchMode="singleTop"
- 解决Android singleTask模式下PendingIntent不能给onNewIntent传值的Bug
- 跳转activity设置为launchMode="singleTask"时,主activity不执行onActivityResult