Ich möchte einige Netzwerkjob regelmäßig selbst wenn App, wenn Kraft geschlossen.Alarm Manager und Broadcast-Empfänger in Kraft geschlossen App
Jetzt funktioniert es, bis die Kraft geschlossen ist. Was ich vermisse?
Auch wenn ich dieses manifestieren hinzu: android: process = ": remote" - es ist nicht OnReceive Methode Auslösung (wie App Kraft ist geschlossen), aber in Protokollen fand ich, dass:
V/Alarmmanager: ausgelöst : cmp = com.cryptorulezz.cryptosignals/.Code.Alarm Pkg: com.cryptorulezz.cryptosignals
Mein Code:
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);
}
}
Wie i Alarm in MainActivity
gesetzt:
Alarm alarm = new Alarm();
alarm.setAlarm(this);
Manifest:
<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
Wenn der Benutzer Ihre Anwendung zu verwenden, entscheidet nicht, wer bist du zu sagen, sie, dass sie falsch liegen? Ein Force Close ist eine manuelle Sache und Ihre App sollte nicht weiter funktionieren. –
@RichardLeMesurier Einige Apps können Benachrichtigungen anzeigen, nachdem sie geschlossen wurden, und ich bin mir nicht sicher, ob es sich um Cloud-Messaging handelt. – Vadim