0

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

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

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

4

3 回答 3

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

在 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

希望这可以帮助。

于 2012-07-11T14:54:16.453 回答
0
android.os.Process.killProcess(android.os.Process.myPid());

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

于 2012-07-11T14:26:08.937 回答
0

NO

但是您可以像这样存在漏洞应用程序,System.exit(0);但这不是推荐的方式..因为android没有设计退出应用程序。

于 2012-07-11T14:27:40.837 回答