我有这个代码:
private AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
private PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, new Intent("my action-name"), 0);
alarmManager.setInexactRepeating((int)AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + autoUpdateIntervalInMinutes * 60 * 1000, autoUpdateIntervalInMinutes * 60 * 1000, alarmIntent);
但是我想为LocalBroadcastManager更改它。这可能吗?
不,这是不可能的,因为 LocalBroadcastManager
仅适用于您自己的流程,并且 AlarmManager
后端运行的过程不同。这就是为什么没有办法创造一个 PendingIntent
适用于 LocalBroadcastManager
。
不,这是不可能的,因为 LocalBroadcastManager
仅适用于您自己的流程,并且 AlarmManager
后端运行的过程不同。这就是为什么没有办法创造一个 PendingIntent
适用于 LocalBroadcastManager
。
但是您可以注册一个BroadcastReceiver,它基本上将“全局”广播转换为LocalBroadcast:
public class AutoUpdateBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = AutoUpdateBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, ".onReceive");
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
lbm.sendBroadcast(intent);
}
}