Android 当应用程序进入后台时(通过Home键),我如何关闭它?
我想在应用程序进入后台时关闭它 我当前的方法是在一个主活动的OnPause()中调用finish() 然而,在我的应用程序中有几个活动。当它从我的主活动跳转到另一个活动时,我的主活动将关闭 我也不例外。我希望我的应用程序只有在整个应用程序进入后台时才关闭(例如,通过Home键)Android 当应用程序进入后台时(通过Home键),我如何关闭它?,android,Android,我想在应用程序进入后台时关闭它 我当前的方法是在一个主活动的OnPause()中调用finish() 然而,在我的应用程序中有几个活动。当它从我的主活动跳转到另一个活动时,我的主活动将关闭 我也不例外。我希望我的应用程序只有在整个应用程序进入后台时才关闭(例如,通过Home键) 谢谢。你不必那么做。。当你按Home键时,Android会自动完成。。当它需要资源的时候。。。阅读本文了解更多信息您可以使用process.killProcess(process.myPid())终止自己应用程序的进程。
谢谢。你不必那么做。。当你按Home键时,Android会自动完成。。当它需要资源的时候。。。阅读本文了解更多信息您可以使用process.killProcess(process.myPid())终止自己应用程序的进程。如果你不能依靠“回拨给你”活动来告知你的应用程序何时失去焦点,并且鉴于你不能依靠onPause(如上所述),原则上你可以在onPause期间给自己贴一张自杀便条:
_runnable = new Runnable() {
@Override
public void run() {
Process.killProcess(Process.myPid());
};
_handler = new Handler().postDelayed(_runnable, 3000);
然后让您的另一个活动截获并在onResume期间取消它:
_handler.removeCallbacks(_runnable);
(你需要一种方法来提供对多个活动中变量的访问。)如果取消从未出现,那么你的应用程序最终将被终止
我认为,但可能的是,
现在让我们考虑一下这是你的清单看起来如何。主要活动Hello启动Hello2,它启动Hello3等等
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Hello" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Hello2"></activity>
<activity android:name="Hello3"></activity>
<activity android:name="Hello4"></activity>
</application>
这很有效 有关StackOverflow,请参见对类似[问题][1]的答复。[1] :无论哪种方式,都不要维护你的活动堆栈谢谢,但我必须这样做是为了一个特殊的原因。@dong221。。。每次从一个屏幕导航到另一个屏幕时,都会调用其onPause()方法,有时会调用onDestroy()方法。默认情况下,在主页上按键活动已完成,因此您无法自己完成。有些情况下必须完成此操作,例如在后台运行的安全应用程序。例如,请参见大通银行应用程序。说“不要这样做”不是答案,甚至也不是结束。不,退出流程是不起作用的-Android,而不是你,决定了一个流程何时应该存在或不应该存在,如果你退出一个它认为应该仍然存在的流程,它可能会重新创建它。不。One finish()的应用程序组件。人们不会扼杀他们的进程。如果你这样做了,Android很可能会重新创建它。
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloStarter" android:label="@string/app_name"
android:clearTaskOnLaunch="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Hello"></activity>
<activity android:name="Hello2"></activity>
<activity android:name="Hello3"></activity>
<activity android:name="Hello4"></activity>
</application>
System.exit(0);