退出/关闭申请

时间:2011-03-09 16:12:03

标签: android

  

可能重复:
  Quitting an application - is that frowned upon?

我写了一个Android应用程序,它有5个活动。每个活动都由之前的活动启动。 当用户进入上一个活动时,我添加了一个“退出”按钮。 按下此按钮时,我调用finish(); 但是,这只会关闭当前活动,并且应用程序将返回上一个活动。 按下退出按钮时是否有一种简单的方法可以终止所有活动。

谢谢

4 个答案:

答案 0 :(得分:5)

如果您不关心上次打开的活动,请在致电finish拨打下一个活动后立即致电startActivity

如果您在关注,只想在上次活动中单击“退出”按钮时杀死所有内容,请使用BroadcastReceivers

  • 像这样创建一个BaseActivity

public class BaseActivity extends Activity {
    private KillReceiver mKillReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mKillReceiver = new KillReceiver();
        registerReceiver(mKillReceiver,
            IntentFilter.create("kill", "spartan!!!"));
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mKillReceiver);
    }
    private final class KillReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            finish();
        }
    }
}

  • 让您的活动延伸BaseActivity
  • 每当你想清除堆栈时:

Intent intent = new Intent("kill");
intent.setType("spartan!!!");
sendBroadcast(intent);

答案 1 :(得分:5)

通常,在应用中添加“退出”功能并不是一个好主意。这不是Android的本质。首先阅读the topic

答案 2 :(得分:2)

在onActivityResult()中捕获此结果,然后将其传播通过堆栈?

答案 3 :(得分:1)

不要添加退出按钮。它在Android世界中几乎没有任何意义。请阅读this article by a Google employee,了解原因。