如何安排共享首选项的更改?

时间:2018-11-27 06:18:56

标签: android android-studio broadcastreceiver alarmmanager accessibilityservice

我想让以下代码在特定时间自行运行-

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提出的宝贵建议。

0 个答案:

没有答案