如何将应用程序转到后台(通过Home键)关闭它?

时间:2011-10-20 03:53:46

标签: android

我希望在应用程序运行后关闭它。

我目前的方法是在其中一个主要活动的OnPause()中调用finish()。

但是,在我的应用程序中有几个活动。当它从我的主要活动跳转到另一个活动时,我的主要活动将被关闭。

这不是我的例外情况。我希望我的应用程序仅在整个应用程序转到后台时关闭(例如通过Home键)

感谢。

3 个答案:

答案 0 :(得分:1)

你不必这样做..当你按Home键时Android会自动完成它...当它需要资源时...阅读本文以获取更多http://developer.android.com/reference/android/app/Activity.html

答案 1 :(得分:-1)

您可以使用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);

(您需要一种方法来提供跨多个活动的变量访问权限。)如果取消永远不会到来,那么您的应用最终将会被杀死。

Kludgy,但我认为可能。

答案 2 :(得分:-1)

现在让我们考虑一下这是你的清单的样子。主要活动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>

现在创建虚拟Launcher活动(HelloStarter),它启动你的Hello活动。 请参阅更新的清单。

       <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>

在你的Hello活动的onDestroy()中添加:

     System.exit(0);

这有效...... !!!!