Musisz przekształcić aplikację w usługę. Oto Androidy wziąć na tworzenie składników usług:
http://developer.android.com/guide/components/services.html
Znaleziony to także na MobiWare:
Gdy chcesz śledzić korzystanie z telefonu komórkowego lub zebrać niektóre dane bez wiedzy użytkownika, to może pomóc ty.
Krok 1: Utwórz aplikację bez ikony. Zwykle działanie jest zadeklarowane w następujący sposób:
<activity
android:label="@string/app_name"
android:name="org.security.tracker.Tracker-activity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Usuń kategorię TAG, nie będziesz już otrzymywać ikony aplikacji. Teraz nie potrzebujesz już aktywności. więc usuń ten segment. BUt możesz myśleć, w jaki sposób aplikacja będzie działać bez wyzwalacza lub jaki jest punkt początkowy aplikacji. To jest rozwiązanie.
<!-- Start the Service if applicable on boot -->
<receiver android:name="org.security.tracker.ServiceStarter" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
To uruchamia twój kod, który został tam napisany przez Odbiorcę, możesz uruchomić usługę, aby zrealizować swoje przemyślenia.
<service android:name="org.security.tracker.serviceCode" />
Trzeba dodać to uprawnienie,
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Twój kod działa, gdy telefon restartuje tylko.
Krok 2. Wpisz kod
Na Reboot The recevier zadziała, nie można uruchomić usługi.
class ServiceStarter extends BroadcastReceiver {
@Override
public void onReceive(Context _context, Intent _intent) {
Intent i = new Intent("com.prac.test.MyPersistingService");
i.setClass(_context, ServiceCode.class);
_context.startService(i);
}
}
Android studio nie będzie skompilować jeśli nie istnieje kategoria LAUNCHER w androidmanifest – Plugie
Jak usługa kod zostanie wykonany, jeśli nie możesz uruchomić aplikacji, tylko studio Android nie zostanie skompilowane po raz pierwszy. – abh22ishek
Nie otrzymuję żadnego połączenia w BroadcastReceiver, dopóki nie zacznę działać raz –