从服务创建的通知中恢复活动

时间:2014-06-06 12:26:57

标签: android android-intent android-activity android-notifications

我有一个应用程序启动在后台运行的服务。该服务定期发出持续通知。我希望能够按下该通知并恢复该应用程序的最后一个活动。

我按如下方式创建通知:

public static  void startNotification(Service service,  String message) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(service);
    if(prefs.getBoolean("pref_NotificationDisplayed", true)){
        // Creates an Ongoing Notification
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(service.getApplicationContext()).setSmallIcon(R.drawable.ic_launcher).setContentTitle("Title").setContentText(message);

        Intent toLaunch = new Intent(service.getApplicationContext(),MainActivity.class);
        toLaunch.setAction("android.intent.action.MAIN");
        toLaunch.addCategory("android.intent.category.LAUNCHER");
        PendingIntent intentBack = PendingIntent.getActivity(service.getApplicationContext(),   0,toLaunch, PendingIntent.FLAG_UPDATE_CURRENT);

        //PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(intentBack);
        NotificationManager mNotificationManager = (NotificationManager) service.getSystemService(Context.NOTIFICATION_SERVICE);

        // Send Notification
        Notification primaryNotification = mBuilder.build();
        primaryNotification.flags = Notification.FLAG_ONGOING_EVENT;
        mNotificationManager.notify(10001,primaryNotification);
    }

}

我尝试了herehere的解决方案但没有运气。

每次按下通知时,都会启动新活动,而不是恢复旧活动。这是因为我是从服务发布活动吗?或者我在上面犯了一个明显的错误?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你试试

吗?
toLaunch.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

在你的意图中。检查上面的标志,我没有尝试过...