0

私は 1 つの Android アプリケーションを開発しています。このアプリケーションでは、別の BroadcastReceiver の onReceive から Alarmmanager の onReceive メソッド、つまりインターネット接続を呼び出す必要があります。出来ますか ?または、別の BroadcastReceiver にすべてのものを複製する必要がありますか?

4

2 に答える 2

1

onReceive から新しいインテントを作成して、別のブロードキャスト レシーバーをトリガーできます

@Override
public void onReceive(Context context, Intent intent) {
    Intent newIntent = new Intent("com.domain.yourboardcastreceiver");
    context.sendBroadcast(newIntent);
}
于 2016-11-26T07:40:58.600 に答える
0

インターネット接続ブロードキャスト レシーバーの OnReceive(..) メソッドでは、アラームを設定できます。これにより、アラーム マネージャーがトリガーされます。たとえば、次のようになります。

@Override
public void onReceive(Context context, Intent intent) {
    Intent myIntent = new Intent(getBaseContext(), **AlarmReceiver**.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}

マニフェスト ファイルにアラーム マネージャーのレシーバーを登録することを忘れないでください。

それが役に立てば幸い !

于 2016-11-26T07:46:41.350 に答える