我不想让应用程序在后台运行。 当用户在Android设备上按Home键时,应该完成当前活动。
或者当应用程序恢复时,我想知道应用程序已经成为前景。
我在< application>中创建了接收器。清单文件中的标记:
<receiver
android:name=".HomeKeyReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
此接收器仍未被调用。如果调用此接收器,那么我可以关闭应用程序。
答案 0 :(得分:1)
我发现这样的方式就像,
当用户按下主页按钮时,当前活动的暂停方法被调用。
在第二个活动进入后台后,如果没有打开其他活动(我使用了全局布尔变量),那么我将消息广播到所有要关闭的活动。
无论哪个活动开放,都将在该接收器上关闭。
它对我有用。希望它也可以帮助你。
答案 1 :(得分:0)
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
finish();
}
由于这是一项活动,您可以使用onPause()
,onStop()
和onResume()
。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您只想强迫您的活动不在后台运行,并且每次都要重新创建,则必须覆盖onStop方法:
enter code here
protected void onStop() {
super.onStop();
if (!isFinishing()) {
finish();
}
}