Я имею в виду соображения дизайна Android: AsyncTask vs Service (IntentService?)
Согласно обсуждение,AsyncTask не подходит, потому что он жестко "привязан" к вашей Activity
Итак, я запускаю Thread
(я предполагаю, что AsyncTask и Thread относятся к одной категории), имеют бесконечность работающий цикл в нем и провел следующее тестирование.
Таким образом, я ожидаю, что после того, как я перейду с Thread
на Service
, мой Service
останется в живых даже после того, как я выйдуили убитьмое приложение.
Intent intent = new Intent(this, SyncWithCloudService.class);
startService(intent);
public class SyncWithCloudService extends IntentService {
public SyncWithCloudService() {
super("SyncWithCloudService");
}
@Override
protected void onHandleIntent(Intent intent) {
int i = 0;
while (true) {
Log.i("CHEOK", "Service i is " + (i++));
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Log.i("CHEOK", "", ex);
}
}
}
}
// Doesn't matter whether I use "android:process" or not.
Однако я обнаружил, что
Кажется, что поведение Service
и Thread
одинаково. Итак, почему я должен использовать Service
вместо Thread
? Есть ли что-то, что я упустил? Я думал, что моя Служба
продолжит работать даже после того, как я уничтожу свое приложение?