Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从通知中恢复应用程序_Android_Notifications - Fatal编程技术网

Android 从通知中恢复应用程序

Android 从通知中恢复应用程序,android,notifications,Android,Notifications,我已经在用户打开活动时创建了一个通知,如果用户将应用程序放在后台,并在通知中进行润色,应用程序将尝试重新打开活动,但事实上,一个新活动被打开,最后的数据丢失 有人能帮我吗?您可以尝试将活动作为单个任务,方法是将android:launchMode=“singleTask”添加到您的AndroidManifest.xml中。大概是这样的: <activity android:name=".YourActivity" android:launchMode="singleTask

我已经在用户打开活动时创建了一个通知,如果用户将应用程序放在后台,并在通知中进行润色,应用程序将尝试重新打开活动,但事实上,一个新活动被打开,最后的数据丢失


有人能帮我吗?

您可以尝试将活动作为单个任务,方法是将
android:launchMode=“singleTask”
添加到您的
AndroidManifest.xml
中。大概是这样的:

<activity
    android:name=".YourActivity"
    android:launchMode="singleTask">
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.
  }
}
所以对我来说,这是有效的

<activity android:name=".YourActivity" android:launchMode="singleTop">

批准的答案中建议的单一任务也可以,但不建议这样做

“singleTask和singleInstance-不适用于大多数应用程序,因为它们导致用户可能不熟悉的交互模型,并且与大多数其他应用程序非常不同。”