我想让以下代码在特定时间自行运行-
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
preferences.edit().putBoolean("isServiceEnabled",true).apply();
我将其复制到broadcastReceiver的onReceive
方法中,并在需要的时间通过AlarmManager发送了一个意图,但这似乎不起作用。
Intent startIntent = new Intent(MainActivity.this,MyBroadcastReceiverStart.class);
PendingIntent pendingIntentStart = PendingIntent.getActivity(MainActivity.this,0,startIntent,PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManagerStart = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManagerStart.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis()-5000,pendingIntentStart);
并且onReceive
方法无法识别.show方法,因此无法向敬酒者显示以确保onReceive
是否被调用。
AndroidManifest.xml
<receiver android:name=".MyBroadcastReceiverStart" >
</receiver>
<receiver android:name=".MyBroadcastReceiverStop" >
</receiver>
如何安排共享首选项的更改?
用日志检查onReceive(),它没有被调用。该怎么办?
谢谢Mike M.,将getActivity()更改为getBroadcast()可以正常工作。 谢谢Vivek Mishra,Akshay Panchal和Ankur Aggarwal提出的宝贵建议。