Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
2013-05-09 22:35
561 查看
Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
博客分类:Android应用开发AndroidXML
android:launchMode="singleTask" 和 onNewIntent(Intent 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 >
Xhtml代码
<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);
}
Java代码
@Override
protected void onNewIntent(Intent intent) {
if(DEBUG) Log.i(TAG, "onNewIntent ~~~~~~~ intent = "+intent);
super.onNewIntent(intent);
}
注意: 当按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent 。
分享到:
相关文章推荐
- 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法)
- 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法)
- Android 监听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:launchMode="singleTask"
- 一个由Activity launchMode="singleTask"属性引起的血案(Android)
- 解决Android singleTask模式下PendingIntent不能给onNewIntent传值的Bug
- 【Android】 Activity启动模式singleTask的数据传输 onNewIntent方法
- 解决Android singleTask模式下PendingIntent不能给onNewIntent传值的Bug
- android Task Activity launchMode="singleTask" singleInstance 代码分析
- 跳转activity设置为launchMode="singleTask"时,主activity不执行onActivityResult
- 解决Android singleTask模式下PendingIntent不能给onNewIntent传值的Bug