1

我真的需要能够在单击菜单按钮时终止应用程序。我的菜单工作得很好,但是当我尝试终止/终止应用程序时,它只会关闭当前活动并打开前一个活动。

  • 我需要能够使用后退按钮或我设计的导航按钮在应用程序中的活动之间来回导航
  • 在菜单中,我添加了一个退出应用程序的按钮,在点击事件中,我输入了代码

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

  • 然而什么也没发生,我的意思是它是一样的。行为类似于 Finish()。单击该按钮时,我需要完成所有活动。

  • 我非常讨厌进入应用程序深处的后退按钮,并导航几分钟,然后当你想关闭应用程序时......不点击主页按钮,你需要几乎相同的时间返回通过你之前所做的所有步骤,反过来......至少可以说很烦人。
  • 另外,我的应用程序对几乎每个 Activity 都发出 HTTP 请求,因此我的应用程序在“返回”时会产生双倍的互联网流量。“是”我的应用程序需要这样做。我无法在本地缓存我的数据库并从这里使用它,因为我的应用程序将被多个用户同时使用,并且他们每次进入活动时都需要查看更新的数据
  • 我不希望/不需要我的应用程序保持打开状态以供将来使用。我的应用程序将需要用户+通行证身份验证,并且我需要提供在用户想要注销它时能够关闭它的安全性,这样他就可以在去上厕所时将手机安全地放在桌子上(这只是一个例子)。
  • 我不需要关于为什么 Android 不希望我关闭我的应用程序的讲座……我不在乎 Android 想让我做什么。这是我想做的,这更重要。如果我的用户无人看管他的手机,任何人都可以启动应用程序并登录并查看我的应用程序存储的任何信息,所以不,我不希望我的应用程序逗留。当用户选择停止它时,我希望它停止。

那么请告诉我该怎么做?我尝试在清单中添加:

<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

对于每项活动,然后在我开始一项活动时添加:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

没有任何改变...当我单击退出按钮时,当前活动完成并显示先前的活动。我讨厌这个。请告诉我该怎么做。

有很多 TaskManager 应用程序可以让您完成其他应用程序,因此必须有一种方法能够完成您自己的应用程序......

谢谢

4

4 回答 4

2

System.exit退出 JVM 并有效地杀死 VM 进程。

关于您的“假定”需要退出应用程序的一些注释,恕我直言,这并不能证明终止应用程序是合理的,并且会给用户使用您的应用程序的体验带来更糟糕的体验,并且还会影响其他应用程序和运行它的设备作为一个整体。

我非常讨厌进入应用程序深处的后退按钮,并导航几分钟,然后当你想关闭应用程序时......不点击主页按钮,你需要几乎相同的时间返回通过你之前所做的所有步骤,反过来......至少可以说很烦人。

这就是为什么它被称为“返回”而不是“退出”的原因。您可以对浏览器中的“后退”按钮说同样的话。

另外,我的应用程序在几乎每个 Activity 上都发出 HTTP 请求,所以我的应用程序在“返回”时会产生双倍的互联网流量

不知道为什么回去的时候会造成双倍的流量。你说它应该刷新,所以后面如果你想刷新,你需要再次进行HTTP查询。我看不出这有什么问题。

我不希望/不需要我的应用程序保持打开状态以供将来使用。我的应用程序将需要用户+通过身份验证,并且我需要提供在用户想要注销时能够关闭它的安全性

您无需为此退出。当用户离开您的应用程序时,您可以将其标记为未登录。这样,您可以在用户每次返回时询问用户 + pass 并保持显示相同的 Activity,这样他/她就不必再次导航到该 Activity。

我不需要关于为什么 Android 不希望我关闭我的应用程序的讲座……我不在乎 Android 想让我做什么。

然后,您的应用程序将在每次返回时启动速度变慢,消耗更多电池等等。Android 应用程序开发指南不是“仅仅因为”。您需要遵循此指南有一个充分的理由:因为这就是 Android 的工作方式。

于 2013-08-14T11:27:13.857 回答
0

不要这样做,操作系统会告诉我们何时应该终止应用程序。你永远不能关闭你的应用程序。

于 2013-08-14T11:28:14.250 回答
0

更换你的线路

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

并尝试。它适用于我的情况......我希望它也能帮助你。

于 2013-08-14T11:28:35.210 回答
0

只需在退出按钮单击事件中使用它:

 System.exit(0);
于 2013-08-14T11:52:11.923 回答