2012-05-03 4 views
33

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

+0

Im ищет аналогичную функциональность, если вам удастся, пожалуйста, поделитесь кодом со мной. – Anirudh

ответ

69

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

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

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

Step2: Добавить это намерение фильтр в приемнике,

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

Шаг 3: Теперь вы можете начать первую деятельность приложения с помощью метода onReceive класса Receiver. .

public class BootReciever extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, Tabs.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

} 
+1

thaks vishesh, morevore this steps Моя основная деятельность maust расширяет LauncherActivity или просто Activity? –

+1

Вместо этого вы можете использовать Receiver, который будет работать нормально ... проверьте новую обновленную строку кода. –

+0

Tabs.class на шаге 3 должен быть моим основным действием ??? –

11

Если вы хотите, чтобы запустить приложение при запуске таблетки, вы должны слушать к действию 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> 
+1

Пробовал, не работает, после показа обычного экрана запуска мое намерение вызывается через 2 секунды. – Anirudh

2

Ответа на этот вопрос @vishesh chandra. Но на каком-то устройстве не работает, потому что приложение было установлено по умолчанию на внешнем хранилище. Убедитесь, что вы указали android: installLocation = "internalOnly", иначе вы не получите никаких действий с завершением загрузки, если приложение установлено на SD-карте. Добавьте это в тег приложения в файле manifest.xml, и он будет работать.

0

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

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

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

смотрите фотографию.

Image

Смежные вопросы