別のAlarmManagerに関する苦情(迅速な解決策を望んでいます)。開発にはAndroidエミュレータを使用しています。動作しているとされる例を見つけたので、それを使用してみました。私は次のことをしました:
マニフェストファイルにレシーバー文字列を追加しました。
<receiver android:name=".SchHandler" android:process=":remote" />
メインアクティビティを作成し、そのonCreateを使用しました。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Bundle bundle = new Bundle(); SchHandler handler = new SchHandler(this, bundle, 1); }
アラームを作成してリッスンするBroadcastReceiverを作成しました。
public class SchHandler extends BroadcastReceiver { private final String REMINDER_BUNDLE = "ReminderBundle"; public SchHandler (Context context, Bundle extras, int timeoutInSeconds) { Toast.makeText(context, "Scheduling...", Toast.LENGTH_LONG).show(); Log.d("Debug", "Sch"); AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, SchHandler.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); Toast.makeText(context, "Time:" + System.currentTimeMillis(), Toast.LENGTH_LONG).show(); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2000, 5000, pendingIntent); } @Override public void onReceive(Context context, Intent arg1) { // TODO Auto-generated method stub Log.e(REMINDER_BUNDLE, "Receive"); Toast.makeText(context, "Testing", Toast.LENGTH_LONG).show(); } }
set、setRepeatingで試してみましたが、何も機能しませんでした。他に何を試すべきですか?