主要活动创建了主屏幕的快捷方式,一切顺利,但是当它以快捷方式启动时需要知道额外的值。所以我在创建快捷方式时使用了这个
intent.putExtra(EXTRA_ID, "Some string info here");
并onResume
检索此值
if (getIntent().hasExtra(EXTRA_ID))
ShowToast(getIntent().getExtras().getString(EXTRA_ID));
一切正常,让我们举一些例子
在第三个例子中,它做了它想做的事情。但我怎么知道活动是否通过快捷方式恢复/启动?
答案 0 :(得分:1)
你如何删除额外的EXTRA_ID
?你应该这样做:
在onResume()
:
if (getIntent().hasExtra(EXTRA_ID)) {
ShowToast(getIntent().getExtras().getString(EXTRA_ID));
getIntent().removeExtra(EXTRA_ID);
}
答案 1 :(得分:1)
你在启动程序中设置了一个额外的Intent,并希望在任何状态下打开此活动时获得额外的数据。
你遇到的问题:
活动在后台,没有额外的,按下了快捷方式,没有 出现。
这是因为您的活动已经启动,启动器意图只使用现有任务作为前端任务,并且在这种情况下其额外数据会丢失。
要解决此问题,您需要两个步骤:
android:launchMode="singleTask"
。onCreate()
和onNewIntent()
中,而不是onResume()
。