清除内存时,正在进行的通知消失

时间:2014-09-18 09:13:22

标签: android notifications broadcastreceiver

我的问题是我想取消正在进行的通知    在应用程序中选择了选项,但每当我在“任务”上清除内存时    我的Android设备的管理器/ RAM“选项卡我的通知消失了。

即使我清除记忆,我还能做些什么来使我的持续通知保持不变?

我在扩展BroadcastReciever class的类中创建了一个持续通知。在我的OnGoingNotificationReciever(扩展BroadcastReciever)中:

Intent mainAct =  new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 555, mainAct, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context).setSmallIcon(resID).setContentTitle(city).setContentText(temperature);
mBuilder.setContentIntent(contentIntent);
mBuilder.setOngoing(true);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1,  mBuilder.build());

然后我设置AlarmManager以启动此BroadcastReciever并每5分钟重复一次:

AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
NotificationManager mNotificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
Intent i7 = new Intent(getApplicationContext(), OnGoingNotificationReciever.class);
PendingIntent ServiceManagementIntent = PendingIntent.getBroadcast(getApplicationContext(), 1111111, i7, 0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,SystemClock.elapsedRealtime(), 5 * 60 * 1000, ServiceManagementIntent);

这非常有效,可以完成我想做的事情(例如当我关闭应用程序时,通知会保留在状态栏上),除非它在清除内存时消失。

注意:在Yahoo Weather应用程序中,它可以执行我想要的操作,但我无法在Internet上找到它。

1 个答案:

答案 0 :(得分:0)

经过大量搜索,我终于找到了解决这个问题的方法。

在我的Manifest.xml中,我写了以下内容:

<receiver android:name=".OnGoingNotificationReciever" >
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_RESTARTED" />
        <data android:scheme="package" android:path="com.example.havadurumumenu" />
    </intent-filter>
</receiver>
清除内存时会调用

PACKAGE_RESTARTED,设置清除内存后会重新启动接收器。