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

Как запустить/запустить приложение во время загрузки Android

Я хотел бы запустить свое приложение, когда начнется мой планшет, так что основная активность моего приложения - это первое, что пользователь видит, когда он запускает планшет.
Я читал о LauncherActivity, но я не понимаю, как его использовать.
Может ли кто-нибудь помочь мне с предложениями, ссылками или учебниками для этого?
Является ли LauncherActivity лучшим способом или есть альтернативы?

4b9b3361

Ответ 1

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

Шаг 1. Установите разрешение в AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Шаг 2: Добавьте этот фильтр намерений в приемник

<receiver android:name=".BootReceiver">
    <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

Шаг 3: Теперь вы можете запустить ваше первое действие из метода onReceive класса Receiver.

public class BootReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
       Intent myIntent = new Intent(context, MainActivity.class);
       myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       context.startActivity(myIntent);
   }

}

Ответ 2

Если вы хотите запустить приложение при запуске планшета, вам необходимо прослушать действие BOOT_COMPLETED и отреагировать на него. BOOT_COMPLETED - это широковещательное действие, которое транслируется один раз, после того, как система завершила загрузку. Вы можете прослушать это действие, создав BroadcastReceiver, который затем запускает вашу активность запуска, когда он получает намерение с действием BOOT_COMPLETED.

Добавьте это разрешение в свой манифест:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Создайте собственный проект BroadcastReceiver в своем проекте:

public class MyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Intent i = new Intent(context, MyActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
} 

Затем измените свой файл манифеста, добавив BroadCastReceiver в манифест:

<receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

Ответ 3

Ответ @vishesh chandra правильный. Но на некоторых устройствах не работает, потому что приложение было установлено на внешнее хранилище по умолчанию. Пожалуйста, убедитесь, что вы указываете

android:installLocation="internalOnly"

в противном случае вы не получите никаких действий при завершении загрузки, если приложение установлено на SD-карту. Добавьте это в тег приложения в файле manifest.xml, и оно будет работать.

Использование:

<application
        android:name=".Data.ApplicationData"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:installLocation="internalOnly"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
        <!--activities, services...-->
</application>

Ответ 4

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

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

Настройки > приложение > ваше приложение > Ограничить для запуска (выбор)

см. рисунок.

Изображение