Android: как начать работу в фоновом режиме

Обычно я запускаю действие с помощью этого кода:

Intent i = new Intent(context, MyActivity.class);  
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);  

Но как мне начать работу так, чтобы она осталась в фоновом режиме?

Ответы

Ответ 2

Чтобы сохранить активность в фоновом режиме, можно использовать службы. Создайте справочную службу, например:

import android.app.Service;
import android.content.Intent;
import android.os.Binder;

import android.os.IBinder;

public class BackgroundService extends Service {


    private final IBinder mBinder = new LocalBinder();

    public class LocalBinder extends Binder {
        BackgroundService getService() {
            return BackgroundService.this;
        }
    }


    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }
}

Вызовите службу в oncreate() вашего основного действия следующим образом:

 startService(new Intent( MainActivity.this,BackgroundService.class));

Ответ 3

U может сделать три вещи

Если вы хотите выполнить долго выполняющуюся задачу в фоновом режиме с обновлением пользовательского интерфейса. Используйте Asyntask. Если вы хотите выполнить многолетнюю задачу в фоновом режиме, используйте intenservice. Если вам нужна некоторая фоновая задача, которая не слишком тяжелая, используйте некоторые сервисы.

Ответ 4

Активность обычно должна отображаться пользователю. Если вам не нужен какой-либо пользовательский интерфейс, вам, возможно, вообще не требуется подкласс Activity. Рассмотрите возможность использования службы или IntentService для своей задачи. Или вы можете задать тему активности .NoDisplay.