......我仍然没有想法什么错。希望有人可以帮助我,我并不是真正熟悉Android。
这是我的报警服务,在Reporter.java中定义:
alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(getBaseContext(), Reporter.MyReceiver.class);
PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(getBaseContext(), 0, alarmIntent, 0);
alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 1*1000, 1*30*1000, pendingAlarmIntent);
这是我收到的内部班级:
public class MyReceiver extends BroadcastReceiver{
public MyReceiver(){
super();
}
public void onReceive(Context context, Intent intent) {
Log.e("log_cat","Alarm empfangen");
new GetControls();
}
}
这就是我添加到Manifest中的内容:
<receiver android:name="de.sonderfarben.tmc_reporter3.Reporter$MyReceiver" android:process=":remote"/>
感谢名单!!
答案 0 :(得分:0)
那是因为你已经指定过去的时间。如果您尝试在事件发生后的一秒钟内发生ELAPSED_REALTIME_WAKEUP
警报,请使用SystemClock.elapsedRealtime()+1000
,而不是1*1000
。
<强>更新强>
此外,您不能使用常规内部类。您可以使用static
内部类或单独的公共类。常规内部类只能由外部类的实例实例化; Android没有其中一个可以使用。