目前我使用一个立即完成的Activity
,从而从应用程序堆栈中提取最后一个Activity
。
public class ViewlessActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
}
}
有没有更好的解决方案?
更新:
我遵循了大卫的建议,但无法使其按要求工作(它始终显示 MainActivity)
下面是创建挂起意图的代码:
Intent mainActivityIntent = new Intent(this.getApplicationContext(), MainActivity.class);
mainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingMainActivityIntent = PendingIntent.getActivity(this.getApplicationContext(), 0, mainActivityIntent, PendingIntent.FLAG_CANCEL_CURRENT);
AndroidManifest.xml
为MainActivity
设置了android:launchMode="singleTop"
。
你的解决方案很好。您也可以使用Intent.FLAG_ACTIVITY_NEW_TASK
再次启动根Activity
(带有 ACTION=MAIN 和 CATEGORY=LAUNCHER 的根)。如果您的应用程序已在运行,则只会将现有任务置于前台,而无需启动任何新Activity
。
将此代码添加到onCreate
方法中MainActivity
这是打开应用程序时将启动的第一个活动:
if (!isTaskRoot())
{
finish();
return;
}
另外,请记住在通知PendingIntent
Intent
中使用MainActivity
。
我希望这对你有所帮助。