我已经连接到Google Cloud Messaging,并在收到某些内容时显示通知。 我想在用户点击通知时“最大化”我的应用。即显示与我的应用相关的最新活动。或者,如果应用程序尚未启动,我想开始它的主要活动。
如果应用程序已经打开,我必须不创建最后一个活动的新实例。
我怎样才能做到这一点?
我已经看到了很多类似的问题,但所有的答案似乎都想要指定活动类,我不知道,因为我不知道上次显示了哪个活动。
这个看似简单的任务是否有解决方案?
我的代码目前看起来像这样:
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle("foo")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0));
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
但它没有用。
答案 0 :(得分:1)
点击Activity
时打开Notification
时,只需打开以下Activity
。即您的PendingIntent
将在Activity
请阅读comments
中写的所有Activity
,以便了解为何创建
public class NotificationHandlerActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//deep linking - resuming app code
if (isTaskRoot()) {
// This Activity is the only Activity, so
// the app wasn't running. So start the app from the
// beginning (redirect to MainActivity)
} else {
// App was already running, so just finish, which will drop the user
// in to the activity that was at the top of the task stack
Intent intent = getIntent();
Uri data = intent.getData();
//you can put your extra's if any
finish();
}
}
}