強制終了してもアプリケーションが定期的にネットワークジョブを実行したい。アラームマネージャーとブロードキャスト受信機が強制終了アプリ
これは強制終了するまで機能します。 私は行方不明ですか?また
私はこのマニフェストに追加した場合:アンドロイド:プロセス=「リモート」を - それは(アプリのよう力が閉じている)onReceiveメソッドをトリガしないですが、ログに私が見つかりました:トリガ:
V/AlarmManager :CMP = com.cryptorulezz.cryptosignals/.Code.Alarm PKG:com.cryptorulezz.cryptosignalsは
マイコード:
:私はMainActivity
にアラームを設定する方法
public class Alarm extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
// Put here YOUR code.
Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example
System.out.println("ALARM !!!!!!!!!!!!!!!!!!!!");
wl.release();
}
public void setAlarm(Context context)
{
AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
//Intent i = new Intent(context, Alarm.class);
Intent i = new Intent("Coinsider.START_ALARM");
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 1, pi); // Millisec * Second * Minute
}
public void cancelAlarm(Context context)
{
Intent intent = new Intent(context, Alarm.class);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
}
}
Alarm alarm = new Alarm();
alarm.setAlarm(this);
マニフェスト:
<receiver android:name=".Code.Alarm" android:exported="false">
<intent-filter>
<action android:name="Coinsider.START_ALARM" >
</action>
</intent-filter>
</receiver>
https://stackoverflow.com/a/39739886/3363481 – earthw0rmjim
ユーザーが伝えるためにあなたがあなたのアプリを、使用しないことを決定した場合彼らは間違っているのですか?強制終了は手作業であり、あなたのアプリは動作を続けるべきではありません。 –
@RichardLeMesurier一部のアプリは強制終了後に通知を表示でき、クラウドメッセージングであるかどうかはわかりません。 – Vadim