-2

私はこの解決策をどこでも探しましたが、ほとんどの返信はブートレシーバーでアラームを設定するよう求めています。

ブート レシーバーを実装し、サービスを開始し、set メソッドを使用してアラームを設定しました。

サービスは正常に開始されていますが、アラームは設定されていません。

私がそれにこだわっているのを助けてください。

必要に応じて投稿することもできますが、その中でサービスを開始しているため、ブートレシーバーは正常に動作しています

public class MyReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    SharedPreferences sharedPref = context.getSharedPreferences(
            Util.SHARED_PREF_NAME, Context.MODE_PRIVATE);
    long curTime = System.currentTimeMillis();
    long endTime = sharedPref.getLong(Util.END_TIME, -1);
    long startTime = sharedPref.getLong(Util.START_TIME, -1);

    if (curTime < endTime && startTime >= curTime) {
        Intent intent1 = new Intent(context, HUD.class);
        PendingIntent pintent = PendingIntent.getService(context, 1987,
                intent1, PendingIntent.FLAG_CANCEL_CURRENT);
        AlarmManager alarm = (AlarmManager) context
                .getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, endTime, 100, pintent);
        Log.e("alaram set", endTime + " " + curTime);
    }

    Intent service = new Intent(context, HUD.class);
    context.startService(service);
}
}

MyReceiver.java

 <receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

マニフェスト.xml

起動後にサービスが正常に開始されました

しかしalarm.setRepeating(AlarmManager.RTC_WAKEUP, endTime, 100, pintent);

アラームが機能していません。

私は私の質問をクリアしたと思います。

助けてください

4

1 に答える 1