Android BroadcastReceiver不总是使用AlarmManager启动
我们花了几天时间在这里寻找答案,但什么也没有找到Android BroadcastReceiver不总是使用AlarmManager启动,android,broadcastreceiver,alarmmanager,Android,Broadcastreceiver,Alarmmanager,我们花了几天时间在这里寻找答案,但什么也没有找到 public class myReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } } 活动: public class TestActivity extends Activity { private myReceiver rec; @Override pr
public class myReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
活动:
public class TestActivity extends Activity {
private myReceiver rec;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
rec = new myReceiver(); // do I really need this?
AlarmManager am=(AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, myReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 5 , pi);
}
}
xml
...
它并不总是有效,但在“它想要”的时候:(
注意!我开始在Eclipse中按Ctrl+F11,然后用后退按钮关闭应用程序,然后再按Ctrl-F11!因此,在第7次迭代中,应用程序工作了(在onReceive中toast)。我停止了它,删除了数据,然后再次开始按Ctrl-F11,在第3次迭代中-工作了,第5次迭代也工作了…这是什么?您可以尝试的一些更改(并非所有都是必需的)
rec=newmyreceiver();
am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+1000*5,1000*5,pi);
Log.d(“MyReceiver”、“onReceive”);
它并不总是起作用,而是在“它想要”的时候起作用:(
!不易理解,请提供准确信息。我在onReceive中添加了toast,并在我的设备上更新了应用程序,它开始工作。好的。然后我从手机中删除我的应用程序并重新安装,没有任何代码更改,但没有任何效果…我很困惑。我正在使用AVD我的真实设备。更新什么?新安装不起作用,是吗?之后将Toast添加到onReceive时,我按Ctrl+F11键,我的应用程序的更新副本已登录到手机。新安装不起作用。请执行此操作或保留调试点和跟踪。
<application ...>
...
<receiver android:name="com.myprj.myReceiver" android:enabled="true"></receiver>
</application>