将活动从前台带回来

时间:2013-08-17 13:15:26

标签: android background notifications foreground

我遇到了问题。 假设有一个活动A. 现在,用户按Home键,并将A置于后台。 现在,在后台暂停一段时间后,它会生成一个通知。 单击该通知后,它将返回与后台完全相同的活动。 比如,在按下主页键之后,如果用户通过单击图标或最近启动的历史记录再次启动应用程序,则android会重新打开其先前状态中的最后一个活动。 在这里,我不想检测哪个是最后一个活动。我的活动是固定的,我只想在点击通知时将其恢复到以前的状态? 那可能吗 ?怎么做 ? 这是我的通知代码,

    private void generateNotification(Context context, String message, String data) {   
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.notification, message,  System.currentTimeMillis());

    Intent notificationIntent = new Intent(context, MenuActivity.class);        
    //notificationIntent.setFlags(Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);

    Bundle bundle = new Bundle();
    bundle.putString("data",data);
    notificationIntent.putExtras(bundle);

    //Constants.NOTIFICATION_ID++;
    notification.setLatestEventInfo(context, context.getString(R.string.app_name), message, PendingIntent.getActivity(context, 0, notificationIntent, Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR));
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(Constants.NOTIFICATION_ID, notification);            
}

1 个答案:

答案 0 :(得分:0)

使用Intent.FLAG_ACTIVITY_CLEAR_TOP代替FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY