我正在尝试在启动呼叫时重新启动应用程序。我正在听电话状态的改变,当我解除状态时,我会尝试重新启动我的应用程序。
这是我正在使用的启动活动代码:
Intent i = new Intent(context, MyClass.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
不会重新创建活动我正在使用“singleTop”启动模式。问题是活动重新启动,但它不在前面。也许有人有解决方案吗? 谢谢。
答案 0 :(得分:1)
您是否尝试在清单中将Activity设置为singleInstance?
<activity
android:name=".Main"
android:label="@string/app_name"
android:launchMode="singleInstance">
这将打开相同的活动(因为它只能有一个实例)。 这对我有用,但确实意味着一些缺点。防爆。你不能将活动用于不同的任务。
答案 1 :(得分:0)
尝试以下:
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
finish();
startActivity(intent);
答案 2 :(得分:0)
无法保证您的应用程序仍在运行,并且无需创建即可启动;因此,你需要不依赖任何标志才能继续你离开的地方。相反,当您的应用程序被隐藏时,它将你存储您的状态,并在您的应用程序恢复时恢复它。有多种方法可以根据Android活动生命周期执行此操作(如http://developer.android.com/reference/android/app/Activity.html所示)。我会通过在onPause()
方法中保存状态并在onResume()
方法中恢复来实现此目的。