从通知中恢复应用程序

时间:2017-11-08 23:11:17

标签: android notifications

我在用户打开活动时创建了通知,如果用户将应用置于后台并在通知中触摸,应用会尝试重新打开活动,但实际上会打开一个新活动,最后一个数据会丢失。

任何人都可以帮助我吗?

2 个答案:

答案 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-不适合大多数应用程序,因为它们会导致用户不熟悉的交互模型,并且与大多数其他应用程序有很大不同。”