Вам нужно превратить ваше приложение в сервис. Вот как андроиды берутся за создание сервисных компонентов:
http://developer.android.com/guide/components/services.html
Нашел это также на MobiWare:
Если вы хотите отслеживать использование мобильного телефона или собирать некоторые данные без ведома пользователя, это может вам помочь.
Шаг 1: Создайте приложение без значка. Обычно активность объявляется в манифесте следующим образом.
<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>
Удалите тег категории, вы больше не получите значок приложения. Теперь вам больше не нужна активность. поэтому удалите этот сегмент. НО вы можете подумать, как приложение будет работать без каких-либо триггеров или что является отправной точкой приложения. Это решение.
<!-- 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>
Это запускает ваш код, написанный в Receiver, и вы можете запустить службу для реализации своих мыслей.
<service android:name="org.security.tracker.serviceCode" />
Вам нужно добавить это разрешение,
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Ваш код работает только при перезагрузке телефона.
Шаг 2. Напишите свой код
При перезагрузке приемник сработает, и вы сможете запустить службу.
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);
}
}
07.01.2013