Próbuję autostartu mój wniosek nightclock w sprawie pobierania opłat za pomocą następującego BroadcastReceiver realizowany w OnPause() metoda:startActivity() z BroadcastReceiver
BroadcastReceiver test = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
Intent i = new Intent(context, NightClock.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
};
registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
Sposób onReceive() jest zwolniony, gdy kabel USB jest podłączony, ale działanie nie rozpoczyna się. Jednak dziennik pokazuje:
I/ActivityManager( 79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }
Jakieś pomysły, dlaczego dziennik mówi, że aktywność została rozpoczęta, ale nic się nie dzieje?
Proszę zaktualizować swój problem, więcej z LogCat - kilka linii przed tym i kilkanaście linii po tym. Dlaczego też "FLAG_ACTIVITY_NEW_TASK"? Poza tym, czy aktywność, która zarejestrowała to "BroadcastReceiver", nadal występuje, gdy występuje ACTION_POWER_CONNECTED? – CommonsWare
Po podłączeniu do zasilania nie ma więcej linii w LogCat. 'BroadcastReceiver' jest zarejestrowany w tej samej czynności, którą powinien rozpocząć. Ta aktywność nadal działa w tle (aplikacja LogCat została przeniesiona na wierzch). Jeśli ta aktywność zostanie utracona w menedżerze zadań, 'BroadcastReceiver' nie wydaje się w ogóle uruchamiać. Czy to podejście do automatycznego uruchamiania mojej aplikacji od początku? – Gubbel