我编写了一个BroadcastReceiver,它负责根据条件启动不同的App-Activity。现在有可能应用程序已经打开。
在这种情况下,如何关闭所有打开的活动并从Receiver中启动一个新活动。
这里有任何建议!
答案 0 :(得分:0)
根据我的代码段工作,它会显示带有所需消息的通知面板,点按它就会启动简单的启动画面。现在Splash屏幕是实际不显示的屏幕,但指导应用程序显示Front Activity。
private void showNotification(Context context, String message, int userId) {
// Here it play tricky part. Since Splash is the Activity which never show. It just guide which Activity should show next.
Intent intent = intent = new Intent(context, Splash.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(context, userId, intent , 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_launcher).setContentTitle("Alarm").setContentText(message);
mBuilder.setContentIntent(contentIntent);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(userId, mBuilder.build());
}
从Splash Screen开始之前,只需调用finishAffinity()
,就可以清除所有后台堆栈活动。