2012-06-01 3 views
2

Я хочу начать свое приложение автоматически при загрузке телефона. Я объявил BroadcastReceiver в файле манифеста.Начать загрузку телефона в Android

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

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

Я сделал Java-файл для приемника.

Autostart.java

public class Autostart extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) { 

    Intent pushIntent = new Intent(context, MushTouchActivity.class); 
    pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(pushIntent); 
    } 
} 

}

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

ответ

4

попытать, если заявление, как это:

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 


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

     context.startActivity(i); 
    } 
+0

Nopes. Ничего не произошло. – Swayam

+0

Это действительно работает. Если вы хотите начать работу при загрузке, вам нужно добавить этот флаг. Благодарю. – Stan

+0

это не работает. – Noman

2

В случае, если вы находитесь на Android 3.1 или новее:

Убедитесь, что вы запустили приложение, по крайней мере один раз вручную (например, открыв его из приложение). В противном случае ваше приложение помечается как остановленный системой:

Приложения находятся в остановленном состоянии, когда они впервые установлена, но еще не запущен

Остановился приложения не получают никаких широковещательных намерений, в том числе BOOT_COMPLETED ,

Для получения дополнительной информации см. Android 3.1. Platform - Launch controls on stopped applications.

+0

Спасибо за ваш ответ, но я проектирую 2.3.3, и я также запускаю свое приложение вручную один раз. Тогда только перезапустите. – Swayam

+0

Не настоящий ответ –

+0

@CodeDroid Учитывая детали в вопросе, это, безусловно, возможность. Поскольку вы не предоставляете дополнительной информации: я предполагаю, что я остановил один из ваших вопросов или что-то еще, и теперь вы просто злитесь? Изменить: Вероятно, потому что вчера я вчера закрыл (http://stackoverflow.com/questions/10923317/google-tv-and-html5). –

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