显示通知时运行任务

时间:2017-06-06 17:02:57

标签: android background notifications task

(对不起我的英文)

我需要帮助完成我的第一个课程,我必须在星期五通过学习课程...

我正在尝试创建一个应用程序,该应用程序将显示一个通知,其中包含添加提醒的表格中的说明。我对下一个描述显示机制有疑问。我在显示通知后对应用程序进行了描述。不幸的是,当应用程序关闭时,这不起作用。

public void onReceive(Context context, Intent intent) {
    ScheduleNotification.completeWakefulIntent(intent);

    alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    descToShow = d1;

    DataBaseHandler dbh = new DataBaseHandler(context);
    dbh.open();
    dbh.DeleteRow(descToShow);
    dbh.close();


    Toast.makeText(context, descToShow, Toast.LENGTH_LONG).show();

    //notification
    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
    builder.setSmallIcon(R.drawable.icon);
    builder.setContentTitle(descToShow);
    builder.setContentText(descToShow); //--description event--
    builder.setAutoCancel(false).build();

    //from android dev:
    Intent resultIntent = new Intent(context, MainActivity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);

    stackBuilder.addParentStack(MainActivity.class);

    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent( 0, PendingIntent.FLAG_UPDATE_CURRENT );
    builder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    mNotificationManager.notify(1, builder.build());
    PendingIntent notifyPIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
    builder.setContentIntent(notifyPIntent);
}

有什么想法吗?

我的github上的所有代码:https://github.com/azernax/dForget

1 个答案:

答案 0 :(得分:0)

问题是当MainActivity不在内存中时,您使用MainActivity中的静态字段(因此您获得默认值而不是onCreate()中设置的值)。正确的解决方案是再次加载数据(在您的情况下从SharedPreferences)。

我希望这会对你有所帮助。如果您有任何问题,请评论