Подтвердить что ты не робот

Как запустить приложение Android в фоновом режиме?

Этот код запускает приложение автоматически после загрузки системы, но приложение закрывается после нажатия кнопки "Назад" .

Если приложение запускается нормально, щелкнув значок. Он будет работать даже после нажатия кнопки "Назад" или запуска других приложений.

public class AutoBoot extends BroadcastReceiver {
    @Override        
    public void onReceive(Context context, Intent intent) {                
        Intent i = new Intent(context, MyActivity.class); 
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);          
    }
}

Мой вопрос заключается в том, как сделать этот код автоматического запуска для непрерывного запуска даже после нажатия кнопки "Назад" или запуска других приложений?

4b9b3361

Ответ 1

Возможно, вы можете запустить Service здесь, если вы хотите, чтобы ваше приложение запускалось в фоновом режиме. Это то, что Сервис в Android используется для - работает в фоновом режиме и выполняет длительные операции.

UDPATE

Вы можете использовать START_STICKY, чтобы ваша служба работала непрерывно.

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

Ответ 3

Так как приложения все равно работают в фоновом режиме. Я предполагаю, что вы действительно спрашиваете, как вы делаете приложения в фоновом режиме. Нижеприведенное решение заставит ваше приложение работать в фоновом режиме после открытия приложения и после перезагрузки системы.

Ниже Ive добавила ссылку на полностью рабочий пример (в виде проекта Android Studio).

Этот вопрос, кажется, выходит за рамки документов Android, и, похоже, для этого не существует ни одного всеобъемлющего документа. Информация распространяется на несколько документов.

В следующих документах косвенно указывается, как это сделать: https://developer.android.com/reference/android/app/Service.html

https://developer.android.com/reference/android/content/BroadcastReceiver.html

https://developer.android.com/guide/components/bound-services.html

В целях правильного использования ваших требований к использованию важная часть этого выше документа внимательно читается: #Binder, #Messenger и компоненты:

https://developer.android.com/guide/components/aidl.html

Вот ссылка на полностью рабочий пример (в формате Android Studio): http://developersfound.com/BackgroundServiceDemo.zip

Этот проект начнет действие, которое связывается с сервисом; реализации AIDL.

Этот проект также полезен для переопределения для целей IPC в разных приложениях.

Этот проект также разработан, чтобы автоматически запускаться при перезапуске Android (при условии, что приложение было запущено хотя бы один после установки, а приложение не установлено на SD-карте).

Когда это приложение/проект запускается после перезагрузки, оно динамически использует прозрачный вид, чтобы он выглядел так, как будто ни одно приложение не запускалось, но сервис связанного приложения запускается чисто.

Этот код написан таким образом, что его очень легко настроить для имитации запланированной службы.

Этот проект разработан в соответствии с вышеприведенными документами и впоследствии является чистым решением.

Однако есть часть этого проекта, который не является чистым: я не нашел способ запустить службу при перезагрузке без использования Activity. Если кто-либо из вас, ребята, читающий это сообщение, имеет чистый способ сделать это, напишите комментарий.