如何解决退出Android应用-终止所有进程
| 我们有一个实时视频流应用程序,并且正在进行中。用户按下主页按钮。我希望将应用程序从内存中删除。再次选择该应用程序后,我们将拥有全新的负载。正在进行许多过程,我们不想手动管理所有连接,流等。这就是我们应用程序的iPhone版本的工作方式。 我读过这篇文章:退出应用程序会皱眉吗? 无论哪种方式,我都不在乎Android的设计模式。但是,如果有人采用一种优雅,简单的方式,当按下主屏幕按钮时,我的所有活动都将从堆栈中删除,然后在重新加载应用程序时,它以全新的主要活动开始,那就太好了。另外,当在onKeyDown中按下Home键时,我似乎无法进行调试。它根本就没有注册。 (keyCode == KeyEvent.KEYCODE_HOME)是我的检查。它拿起后退按钮,等等。 有什么想法吗?解决方法
int p = android.os.Process.myPid();
android.os.Process.killProcess(p);
, 您可以致电system.exit(0);
,但我仍然建议您遵循Android准则,并以onPause()
或类似方法清理所有东西(应有)。
, 您可以重写onPause方法并使用finish()函数吗?
, 您可以比单击按钮来做。定义任何静态方法,例如exit()并定义
android.os.Process.killProcess(android.os.Process.myPid());在退出方法
在主要或首次活动中。
然后在单击按钮时调用此方法。
, 如果要从堆栈中清除所有活动,则可以广播活动的意图,从而启动退出,如下所示:
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(\"CLEAR_STACK\");
sendBroadcast(broadcastIntent);
在您希望从堆栈中清除的每一项活动中,您都可以创建一个带有内部类的BroadcastReceiver:
class ActivitiesBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
finish();
}
}
并在onCreate()方法中注册您的BroadcastReceiver:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(\"CLEAR_STACK\");
BroadcastReceiver r;
r = new ActivitiesBroadcastReceiver();
registerReceiver(r,intentFilter);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。