【发布时间】:2015-08-29 15:02:18
【问题描述】:
这段代码有什么问题?我没有收到任何错误并且代码不起作用我该怎么办?
MainActivity.java
Long alertTime = new GregorianCalendar().getTimeInMillis()+5*1000;
Intent alertIntent = new Intent(MapsActivity.this, MyService.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime,
PendingIntent.getBroadcast(MapsActivity.this, 1, alertIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
MyService.java
public class MyService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
createNotification(context, "Alarm", "ASDFG", "ASDF");
}
public void createNotification(Context context, String msg, String msgText, String msgAlert) {
PendingIntent notificIntent = PendingIntent.getActivity(context, 0,
new Intent(context, MapsActivity.class), 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.searchicon)
.setContentTitle(msg)
.setTicker(msgAlert)
.setContentText(msgText);
mBuilder.setContentIntent(notificIntent);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}}
顺便说一句,我想在 MainActivity.java 类中的 setOnMyLocationChangeListener 上启动警报和通知 onCreate() 有人可以帮助我在后台运行吗?
【问题讨论】:
-
你有没有在onReceive方法上添加日志来检查它是否真的被调用了?
-
哇,我对这个问题的借口我实际上把
<receiver android:name=".MyService" ></receiver>放在了AndroidManifest.xml的错误位置...我也可以在这里问一下后台运行onLocationChange吗?或发布新问题? -
因为这是一个新问题,您最好关闭这个问题(用解决问题的方法回答您自己的问题)并打开另一个问题。
标签: android background alarmmanager