如何以编程方式“重新启动”android应用程序[重复]

Posted

技术标签:

【中文标题】如何以编程方式“重新启动”android应用程序[重复]【英文标题】:How to 'restart' an android application programmatically [duplicate] 【发布时间】:2013-03-22 07:03:57 【问题描述】:

我正在尝试在我的应用程序中创建“注销”功能。基本上,通过注销,应清除应用程序数据。我想做的是在注销后,应用程序应该重新启动,以便可以再次输入凭据等。我遇到的问题是,在用户单击“注销”时,应用程序已经运行了 3-4 个活动,我不知道如何退后一步。如何(模拟?)重新启动应用?

【问题讨论】:

你如何保存你的申请数据? 在本地数据库以及 JSON 文件中。到目前为止,我已成功清除数据 检查这些问题/答案***.com/questions/2470870/… 我想知道使用 System.exit(0) 重新启动应用程序并释放所有静态变量并破坏片段视图是一种好习惯吗?如果不能,请建议我正确的方法来做到这一点。我遇到了和你一样的问题。谢谢。 【参考方案1】:

检查意图属性,如无历史记录、清除回栈等... Intent.setFlags

Intent mStartActivity = new Intent(HomeActivity.this, SplashScreen.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(HomeActivity.this, mPendingIntentId, mStartActivity,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager) HomeActivity.this.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
System.exit(0);

【讨论】:

工作解决方案 同样的代码也适用于牛轧糖吗?? 它工作得很好,除了需要时间,比如 2-3 秒,有什么解决方案可以减少重启时间? @Kishita。我不这么认为。考虑到设置准确警报所面临的困难,我很惊讶它现在实际上在 2019 年有效。一些中文 ROM(例如 OnePlus)会阻止此类警报。 @Kathir 那我应该用什么?

以上是关于如何以编程方式“重新启动”android应用程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PC 上的双启动 Windows-Android:如何以编程方式切换操作系统?

以编程方式设置的主题。如何重新加载 Activity 以应用

如何在iOS中以编程方式重新启动iPhone应用程序

如何修复在 Android 中崩溃的活动的重新启动?

如何在不重新启动 Web 应用程序的情况下以编程方式使 JavaScript 和 CSS 包无效或刷新?

Windows 服务如何以编程方式重新启动自身?