Android是的我想关闭我打开的应用程序!

Android Yes I want to close the app I opened!

我有一个应用程序,我想打开,使用,然后按下按钮关闭。 我的问题是,我是否需要保留应用程序状态的单例数据才能实现此目的? 我的意思是,如果我采用在resume()上完成的解决方案,这意味着我应该保留每个活动看起来关闭的全局数据? 这是关闭应用程序的一种很好的,虽然很尴尬的方式,但除非我很快听到另一种方式,否则我会继续使用它。

谢谢。

PS请不要回复android将决定何时以及如何处理您的应用程序。 对不起,但我知道我的用户确实希望在点击完成后再次看到这个应用程序! 最后重要的是,他们对Android需要对应用程序做什么也不感兴趣,也不应该。


如果你想要杀死你的应用程序,也许你可以使用System.exit(0)

从评论中可以看出,您需要从主要活动中完成。我的方式(尽管可能有更简洁的方法)是在主活动中添加一个静态处理程序:

1
2
3
4
5
6
7
static Handler handler = new Handler() {
   @Override
   public void handleMessage(Message msg)
   {
       System.exit(2);
   }
}

和静态方法:

1
2
3
4
static public Handler getExitHandler()
{
    return handler;
}

在每个类中,我获取此处理程序并在我要退出时向其发送消息:

1
MyMainActivity.getExitHandler().sendEmptyMessage(0);

再次,不是那么干净,但System.exit(2);一样


嗯,有一个原因,每个人都这么说,并且与"你不关闭网页"相同。我不知道用户会期望什么,但这是Android / iOS的工作方式。

我已经使用过标记ACTIVITY_CLEAR_TOP(您在意图上设置标志以打开包含关闭按钮的活动),因此以这种方式删除活动堆栈,仅删除当前活动remaning:所以当你完成();该应用程序"关闭"。

1
2
3
Intent intent = new Intent(this, Some.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);


您可以弹出一个通知用户的对话框:"应用程序将在x秒内关闭"并启动一个计时器,该计时器在活动结束时调用活动结束()。