我想在ACTION_BATTERY_LOW
时创建一个简单的通知。我想要的是在电池电量低的弹出窗口出现时在状态栏中开始通知。我试过这样的方式:
在onCreate
this.registerReceiver(this.batteryLowNotifi, new IntentFilter(Intent.ACTION_BATTERY_LOW));
然后:
private void checkPref(){
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
TutorialNotification.this);
notificationBuilder.setContentTitle("Title");
notificationBuilder.setContentText("Context");
notificationBuilder.setTicker("TickerText");
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);
Intent notificationIntent = new Intent(this, TutorialNotification.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notificationBuilder.setContentIntent(contentIntent);
notificationBuilder.setDefaults(Notification.DEFAULT_SOUND
| Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);
mNotificationManager.notify(SIMPLE_NOTIFICATION_ID,
notificationBuilder.build());
}
private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
checkPref(intent);
}
}
但没有任何事情发生。有什么帮助吗?谢谢
答案 0 :(得分:0)
接收器类
public class MyScheduleReceiver extends BroadcastReceiver {
// Restart service every 30 min
private static final long REPEAT_TIME = 30*1000*4;//1800000 ;
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, service.class);
context.startService(service);
}}
服务类
public class service extends Service {
NotificationManager mNotificationManager;
@Override public IBinder onBind(Intent intent) {
// Not used
return null;
}
@Override public void onCreate() {
super.onCreate();
mNotificationManager= (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
checkPref();
}
@Override
public void onDestroy() {
super.onDestroy();
}
private void checkPref(){
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
service.this);
notificationBuilder.setContentTitle("Title");
notificationBuilder.setContentText("Context");
notificationBuilder.setTicker("TickerText");
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon);
Intent notificationIntent = new Intent(this, service.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notificationBuilder.setContentIntent(contentIntent);
notificationBuilder.setDefaults(Notification.DEFAULT_SOUND
| Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);
mNotificationManager.notify(1,
notificationBuilder.build());
} }
在清单
中注册接收者和服务 <receiver android:name="MyScheduleReceiver" >
<intent-filter>
<action android:name="android.intent.action.ACTION_BATTERY_LOW" />
</intent-filter>
</receiver>
<service android:name="service" >
</service>