我有一个显示列表的 MainActivity。但是当用户点击状态栏中的通知时,我想在 MainActivity 之上显示一个对话框。 是否可以查询 Activity 是否通过通知启动?
我还尝试向 Intent 添加额外信息,让 Activity 知道它应该弹出该对话框。但是包总是空的。将它添加到 onResume() 没有意义,因为 Activity 可能已经可见。
long id = intent.getLongExtra("id", 0);
String title = intent.getStringExtra("msg");
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setSmallIcon(R.drawable.ic_action_ic_action_edit);
mBuilder.setContentTitle("EasyReminder");
mBuilder.setContentText(title);
Intent resultIntent = new Intent(context, MainActivity.class);
resultIntent.setAction(Intent.ACTION_MAIN);
resultIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resultIntent.putExtra("ShowDialog", true);
PendingIntent pi = PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pi);
NotificationManager mNotificationManager =
(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify((int)id, mBuilder.build());
主 Activity .java
@Override
public void onResume() {
super.onResume();
// this is always null
Bundle extras = getIntent().getExtras();
if(extras != null) {
DialogPopupFragment fr = new DialogPopupFragment();
fr.show(getFragmentManager(), "DialogPopupFragment");
}
}
最佳答案
尝试在 resultIntent 上设置标志 FLAG_ACTIVITY_SINGLE_TOP,并实现方法 MainActivity 中的 onNewIntent()
关于android - 我如何知道点击通知后是否打开了 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16869138/