我在用户打开活动时创建了通知,如果用户将应用置于后台并在通知中触摸,应用会尝试重新打开活动,但实际上会打开一个新活动,最后一个数据会丢失。
任何人都可以帮助我吗?
答案 0 :(得分:1)
您可以尝试将android:launchMode="singleTask"
添加到AndroidManifest.xml
,将活动设为一项任务。像这样:
<activity
android:name=".YourActivity"
android:launchMode="singleTask">
然后您需要通过onNewIntent()
处理新数据,如下所示:
public class YourActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity);
...
processExtraData();
}
@Override protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
processExtraData();
}
protected void processExtraData() {
Bundle extras = getIntent().getExtras();
...
// process the extra here.
}
}
答案 1 :(得分:0)
所以对我来说这可行;
<activity android:name=".YourActivity" android:launchMode="singleTop">
像已批准答案中建议的那样,单个任务也可以工作,但不建议这样做;
“ singleTask和singleInstance-不适合大多数应用程序,因为它们会导致用户不熟悉的交互模型,并且与大多数其他应用程序有很大不同。”