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

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

Во-первых, требуется разрешение в вашей AndroidManifest.xml:

Кроме того, в вашемAndroidManifest.xml определите вашу службу и прослушивайте BOOT_COMPLETED действия:











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

public class StartMyServiceAtBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Intent serviceIntent = new Intent(context, MyService.class);
            context.startService(serviceIntent);
        }
    }
}

И теперь ваша служба должна быть запущена, когда телефон запускается.

Комментарии (11)

Это как сделать активность начать работать после перезагрузки устройства Android:

Вставьте этот код в ваш файл AndroidManifest.xml в в<назначение и GT;элемента (__не__ в<деятельность>` элемент):











Затем создать новый класс yourActivityRunOnStartup (совпадает с андроида:имя, указанное Для в <приемник> элемент в манифесте):

package yourpackage;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class yourActivityRunOnStartup extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }

}

Примечание: Звонок-я.addFlags(умысла.FLAG_ACTIVITY_NEW_TASK); имеет важное значение, поскольку активность запускается в контексте внешней деятельности. Без этого деятельность не начнется.

Кроме того, значения андроид:включено, для Android:экспортированы и андроид:разрешение в в `<приемник и GT; тег, кажется, не обязательно. Приложение получает событие без этих ценностей. См., например, здесь.

Комментарии (10)

Слушать ACTION_BOOT_COMPLETE и делать то, что вам нужно оттуда. Есть фрагмент кода здесь.

Обновление:

Оригинальную ссылку на ответ, так что исходя из комментариев, здесь он связан код, потому что никто никогда не пропустит код, когда ссылки не работают.

В AndroidManifest.xml (приложение-часть):







...

...

public class BootUpReceiver extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
                Intent i = new Intent(context, MyActivity.class);  //MyActivity can be anything which you want to start on bootup...
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(i);  
        }

}

Источник: https://web.archive.org/web/20150520124552/http://www.androidsnippets.com/autostart-an-application-at-bootup

Комментарии (7)

Кроме того, вы можете использовать приложение, как автозапуск если вы не хотите, чтобы изменить код, чтобы запустить андроид приложение при запуске: Автостарт - нет root

Комментарии (1)

Шон'ы решение не't работа для меня изначально (Андроид 4.2.2). Мне пришлось добавить фиктивную активность на тот же Android проект и выполнить действие вручную на устройстве по крайней мере один раз. Затем Шон'ный раствор начал работать и приемник BroadcastReceiver был уведомлен после последующих перезагрузок.

Комментарии (0)

Другой подход заключается в использовании системы Android.намерениях.действий.USER_PRESENT "вместо" андроид.намерениях.действий.BOOT_COMPLETED, чтобы избежать притормаживаний во время процесса загрузки. Но это только "true", если пользователь включил блокировку экрана - в противном случае это намерение никогда не транслировался.

Ссылка в блоге - проблема с ACTION_USER_PRESENT умысел на Android

Комментарии (1)

Я хотел бы добавить один пункт в этот вопрос, который я смотрел за пару дней. Я попробовал все ответы, но те не работали для меня. Если вы используете Android версии 5.1 пожалуйста, измените эти параметры.

Если вы используете Android версии 5.1, то вы должны отменить выбор (ограничение на запуск) от настроек приложения.

Настройки> Приложения и gt; Приложения и GT; ограничения на запуск (Дис-выберите)

Комментарии (1)