1

誰も電話しなければ大丈夫です。Opera、Gmail、またはその他のアプリを使用している場合は問題ありません。そして、時間内にターゲット アラーム インテント スタート。

Intent i2 = new Intent();
i2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP  | Intent.FLAG_ACTIVITY_SINGLE_TOP);
pIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, i2, 0);

curtimeset = System.currentTimeMillis();
am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, curtimeset + full, pIntent); //full time in mills when alarm will be on even from lock mode

タイマーの開始時間と現在の時間がターゲット時間に等しい場合。アプリの開始意図。フォアグラウンドからロードします。

public void instanceinitiale() {
    Intent resumeIntent = new Intent(getApplicationContext(), Main.class);
    resumeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(resumeIntent);

}

どんな状況でもアラームをロードする方法は?)

4

1 に答える 1

0

アラームの時間になると、システムがアプリケーションを呼び出します。同じインテント (アラームの作成中に使用するもの) がシステムから送信されます。作成中にデータを入れると、取得できます

public class AlarmService extends BroadcastReceiver {

private final static String action="android.intent.action.ALARMHANDLERACTIVITY";
public AlarmService(){
}

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    if(intent.getAction().compareTo(action)==0){
        context.startActivity(intent);
    }
}




public void createAlarm(){
    Intent intent=new Intent("android.intent.action.ALARMHANDLERACTIVITY");
    intent.putExtra("eventID", Integer.valueOf(id));

    PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent,0);
    AlarmManager aManager=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);


    aManager.set(AlarmManager.RTC_WAKEUP, temp.getStartDate().getTimeInMillis(), pendingIntent);
}

}

レシーバーを定義するには、これをマニフェストのアプリケーション ブロックに書き込みます。

    <receiver android:name=".alarmService.AlarmService">
        <intent-filter android:priority="200">
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver> 
于 2013-04-22T15:46:07.870 に答える