android java 通知点击重置 activity

android java notification tap reset activity

我使用此代码进行通知

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(), "notify_001");
 Intent intent = new Intent(getApplicationContext(), MainActivity.class);
 PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, 
 intent,PendingIntent.FLAG_UPDATE_CURRENT);
 mBuilder.setContentIntent(pendingIntent); 

当我点击通知应用程序打开并重新启动 MainActivity 时,我不想重新启动 MainActivity。

如果可能,尝试将启动模式添加到主要 activity。

在 activity 标签下的清单中只使用此标签。或者您可以在从通知管理器 class.

启动 main activity 的未决意图时添加此模式
android:launchMode="singleTask"

示例代码

<activity
  android:name=".MainActivity"
  android:label="singleTask"
  android:launchMode="singleTask"
  android:taskAffinity="">

这应该使新启动将数据传递给现有的 activity 如果有任何打开并且存在于后台堆栈中。

还要确保覆盖以下方法以在 main activity

中接收新数据
protected void onNewIntent (Intent intent){
  //your update code goes here
}

如果您只想将您的应用程序带到前台(如果它是 运行)或启动它(如果它不是 运行),您应该使用以下方法:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(),
        "notify_001");
Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, 
intent,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingIntent); 

这模拟了在主屏幕上单击应用程序图标。