2013-07-09 5 views
2

Я использую ниже код, чтобы мое приложение может быть автоматически запуск после загрузки полных 10 секунд:Как начать деятельность на BroadcastReceiver при загрузке полной на Android

public class BootActivity extends BroadcastReceiver { 
    static final String ACTION = "android.intent.action.BOOT_COMPLETED"; 

    public void onReceive(Context context, Intent intent) { 
     if(intent.getAction().equals(ACTION)) { 
      context.startService(new Intent(context,  
        BootActivity.class)); 
      try { 
       Thread.sleep(10000); 
       Intent newAct = new Intent(); 
       newAct.setClass(BootActivity.this, NewActivity.class); 
       startActivity(newAct); 
      } 
      catch(Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

Но setClass и startActivity нельзя использовать здесь.
Как я могу изменить его, чтобы запустить его?

+0

'Но setClass и startActivity не могут использовать здесь .' означает? –

+0

Он не может найти эти 2 метода. – brian

+0

Метод startActivity (Intent) не определен для типа BootActivity – brian

ответ

4

Может это поможет ...

Создать класс под названием AutoStart.class

public class AutoStart extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
       Intent i = new Intent(context, SochActivity.class); 
       i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       context.startActivity(i); 
      } 
    } 

} 

И в Manifest объявить ..

<receiver 
      android:name=".AutoStart" 
      android:enabled="true" 
      android:exported="true" > 
      <intent-filter android:priority="500" > 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
+1

Должен ли я также добавить это: '' в манифест? –

+1

Да. Вы должны добавить mark922

4

Попробуйте в файле манифеста,

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

Убедитесь, что вы также включили заполненное разрешение на загрузку.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
Смежные вопросы