Android 如何使应用程序完全(干净地)关闭
我想添加“退出”功能Android 如何使应用程序完全(干净地)关闭,android,codenameone,Android,Codenameone,我想添加“退出”功能 Display.getInstance().exitApplication()几乎可以工作,但可以离开 在android open applications视图中的“ghost”窗口后面。为什么不完成所有活动和服务,并将其他引用设置为空 如果您有一个应用程序单例,那么就只剩下它了。为什么不完成所有的活动和服务,并将其他引用设置为null 如果你有一个应用程序的话,那就只剩下一个应用程序了。android操作系统上的每个应用程序,就像Linux操作系统中的用户,每个应用程序运
Display.getInstance().exitApplication()代码>几乎可以工作,但可以离开
在android open applications视图中的“ghost”窗口后面。为什么不完成所有活动
和服务
,并将其他引用设置为空
如果您有一个应用程序单例,那么就只剩下它了。为什么不完成所有的活动和服务
,并将其他引用设置为null
如果你有一个应用程序的话,那就只剩下一个应用程序了。android操作系统上的每个应用程序,就像Linux操作系统中的用户,每个应用程序运行在一个进程中,该进程分配了一个进程ID
,而应用程序不知道该进程ID,但如果我们终止进程,整个应用程序就会停止
这是你能做的
android.os.Process.killProcess(android.os.Process.myPid());
但是这将重新启动应用程序的第一个活动
,因为android
将尝试恢复应用程序
,您可以像这样转到主屏幕来避免这种情况
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
在android操作系统上的每个应用程序
,就像Linux操作系统中的一个用户
,每个应用程序都运行在一个进程
中,该进程分配了一个进程ID
,而应用程序不知道,但如果我们杀死该进程,整个应用程序就会停止
这是你能做的
android.os.Process.killProcess(android.os.Process.myPid());
但是这将重新启动应用程序的第一个活动
,因为android
将尝试恢复应用程序
,您可以像这样转到主屏幕来避免这种情况
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
是退出应用程序的唯一方法,但不会将其从任务切换程序中删除。感谢@david medenjak的评论,我能够找到以下内容:
android:noHistory="true"
要使用该选项,请使用:
android.xactivity=android:noHistory="true"
在您的构建提示中,该应用程序将不会出现在历史记录中。但正如人们所说,这是一个非常糟糕的做法
iOS中的仅供参考如果您包含退出按钮,您的应用程序将被审查拒绝,除非是“注销”按钮。典型的移动应用程序永远不会真正退出,只应出于安全目的退出
如果你的应用程序需要这些资源,操作系统会杀死它。请注意,这一点很重要,因为移动应用程序通常会停止/重新启动,例如来电。是退出应用程序的唯一方法,但不会从任务切换程序中删除。感谢@david medenjak的评论,我能够找到以下内容:
android:noHistory="true"
要使用该选项,请使用:
android.xactivity=android:noHistory="true"
在您的构建提示中,该应用程序将不会出现在历史记录中。但正如人们所说,这是一个非常糟糕的做法
iOS中的仅供参考如果您包含退出按钮,您的应用程序将被审查拒绝,除非是“注销”按钮。典型的移动应用程序永远不会真正退出,只应出于安全目的退出
如果你的应用程序需要这些资源,操作系统会杀死它。请注意,这一点很重要,因为移动应用程序通常会停止/重新启动,例如来电。这不是“打开的应用程序视图”
,而是“最近的应用程序视图”
,请参见意图#标记活动(u排除)最近的
,即使这是可能的:您不应该这样做。android拥有这些观点是有原因的。您可以对不应显示的单个活动使用NO_HISTORY
标志。它不是“打开的应用程序视图”
,而是“最近的应用程序视图”
,请参见意图#标志活动_从最近的活动中排除
,即使这是可能的:您也不应该这样做。android拥有这些观点是有原因的。您可以对不应显示的单个活动使用NO_HISTORY
标志。您的建议对于一般android可能是正确的,但似乎与codenameone环境无关。您的建议对于一般android可能是正确的,但与codenameone环境无关。您的建议有何含义“没有历史记录”被认为是不好的?对iPhone很有意思。几周前,我妻子抱怨她的电池似乎用得太快了。结果证明,她运行过的所有应用程序都还在运行。在一次手动屠杀之后,电池变好了。历史上的应用程序不一定“正在运行”“他们可以被完全停职或处死。如果您退出应用程序,它将真正死亡,您在历史中看到的正是“历史”。你会阻止用户轻松返回你的应用程序,这既不方便又奇怪。扼杀iOS手机的是特定应用程序(如Facebook)的后台进程。如果你阻止他们在后台进行位置/更新投票,电池可能会改进。被认为不好的“无历史记录”意味着什么?关于iPhone很有趣。几周前,我妻子抱怨她的电池似乎用得太快了。事实证明,她运行过的每一个应用程序都还在运行。在一次人工屠杀之后,电池变得更好了。历史上的应用程序不一定“运行”,它们可以被完全暂停或关闭。如果您退出应用程序,它将真正死亡,您在历史中看到的正是“历史”。你会阻止用户轻松返回你的应用程序,这既不方便又奇怪。扼杀iOS手机的是特定应用程序(如Facebook)的后台进程。如果您阻止他们在后台轮询位置/更新的能力,电池可能会改进。