2016-02-05 1 views
0

У меня есть приемникAndroid приложение не запускается при загрузке системы

public class MyBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent myStarterIntent = new Intent(context, MainActivity.class); 
     context.startActivity(myStarterIntent); 
    } 
} 

и модифицирована AndroidManifest.xml, добавив следующие строки

<receiver 
    android:enabled="true" 
    android:name=".MyBroadcastReceiver" 
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED" 
    android:exported="true"> 

    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 

</receiver> 

раздел. Приложение по-прежнему не запускается при загрузке системы. По крайней мере, как я могу отслеживать, что происходит после перезагрузки устройства (потому что я не могу просто использовать контрольные точки в этом случае)

ответ

1

При запуске от BroadcastReceiver необходимо указать флаг Intent.FLAG_ACTIVITY_NEW_TASK.

Intent myStarterIntent = new Intent(context, MainActivity.class); 
myStarterIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(myStarterIntent); 

This, как вы можете проверить BroadcastReceiver.

+0

Держу пари, что вы правы ... но без журнала logcat это просто слепое предположение – Selvin

+0

@Selvin Да, это правильно. –

+0

Спасибо, это была нужная строка –