毎日アラームを設定しています。アプリがアラーム時に実行されている場合は機能しますが、アプリが実行されていない場合は機能しません。 これは私がマニフェストに受信機を宣言する方法です:アプリが実行されていないときにアラームが発生しない
<receiver android:name="com.myAppPackage.alarm.AlarmReceiver"
android:enabled="true"
android:exported="true"/>
Studioは私を警告します:エクスポートされた受信機は、許可を必要としません。
真の私はアンドロイド追加していない:受信機への許可もと意図をしてアプリケーションセクションでは、任意の許可タグはありません。
これはbroadcastreceiverある:
package com.myAppPackage.alarm;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
public class AlarmReceiver extends BroadcastReceiver {
public AlarmReceiver(){}
@Override
public void onReceive(Context context, Intent intent) {
final Intent syncIntent = new Intent(context, AlarmActivity.class);
syncIntent.addFlags(FLAG_ACTIVITY_NEW_TASK);
context.startActivity(syncIntent);
}
}
アラームは、以下の方法(この例ではセットオフに毎日午後01時48分不正確で構成)で構成されている:
public static void configureDailySync(Context context) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(context, AlarmReceiver.class);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
final int hourOfDay = 13;
final int minuteOfHour = 48;
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minuteOfHour);
alarmManager.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY,
alarmPendingIntent);
}
任意助けが大歓迎です!ありがとうございました!!
ニュース:MainActivity onCreate()メソッドでアラーム設定コードをコピーすると機能します。 ...
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
final int hourOfDay = 13;
final int minuteOfHour = 48;
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minuteOfHour);
alarmManager.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY,
alarmPendingIntent);
アラームがMainActivityののonCreate()で上記のように作成された場合、アプリケーションが閉じている場合でも、それが引き金ん しかし、私は電話を呼び出すとき:これは私がコピーしたコードですメソッドをMainActivityから次のように入力します。
MyAppAccount.configureDailySync(this);
これは機能しません! MyAppAccountは何も拡張していないプレーンなクラスです...私は、MyAppAccountが重要な場合に備えてAppCompatActivityを拡張しようとしましたが、何も... まあ...それは上記のアラーム設定をMainActivityのonCreate()メソッドが常に動作しているわけではありません...最も困惑しているのは何ですか? :-(
は、あなたがしようとしましたアプリケーションクラスにconfigureDailySync()を配置するとどうなりますか? –