有没有办法在应用程序内的所有运行活动上调用finish()?

时间:2012-07-11 14:23:25

标签: android android-activity

好吧,我的问题和标题一样简单:

有没有办法在应用程序内的所有正在运行的活动上调用finish()?

所以我需要一种方法来完全关闭我的应用程序。

3 个答案:

答案 0 :(得分:1)

您可以使用BroadCastReceiver实现此目的:

在每项活动中:

private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {
       finish();
  }
};

在onCreate中注册接收器:

registerReceiver(mLoggedOutReceiver, new IntentFilter(Preferences.INTENT_ACTION_LOGGED_OUT));

on onDestroy:

@Override
public void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mLoggedOutReceiver);
}

在每个活动的清单和以下过滤器上:

<intent-filter>
    <action android:name="com.example.intent.action.LOGGED_OUT" />
</intent-filter>

我在Preference类中声明了Action,如下所示:

public static final String INTENT_ACTION_LOGGED_OUT = "com.example.intent.action.LOGGED_OUT";//logout

最后你要做的就是从退出按钮或其他东西调用sendBroadcast:

sendBroadcast(new Intent(Preferences.INTENT_ACTION_LOGGED_OUT));//logout

希望这有帮助。

答案 1 :(得分:0)

android.os.Process.killProcess(android.os.Process.myPid());

此代码可以关闭您的应用。

答案 2 :(得分:0)

NO

但你可以存在像System.exit(0);这样的洞应用程序,但它不是重新编写的方式......如果没有设计退出应用程序。