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);
这模拟了在主屏幕上单击应用程序图标。
我使用此代码进行通知
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);
这模拟了在主屏幕上单击应用程序图标。