2014-11-19 2 views
-1

Как начать работу после загрузки, которая запускает функцию onCreate() на mainActivity? я уже использую broadcastRecivier, я могу сделать службу, но я не могу выполнить funtion из основного действия.Начальная служба после загрузки

это мой код broadcastReciver

public class BootStartUpReciver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 

     //Start service on Boot 
     if(intent.getAction().equals(intent.getAction())){ 
     Intent service = new Intent(context,TestService.class); 
     service.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startService(service); 
     } 
     //Start App on Boot Start up 
    if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
     //if(intent.getAction().equals(intent.getAction())){ 
     Intent app = new Intent(context,TestService.class); 
     app.setClass(context,SatuActivity.class); 
     app.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startService(app); 
    } 

     } 
    } 
+0

Попробуйте https: // StackOverflow .com/questions/2784441/try-to-start-a-service-on-boot-on-android? answertab = active # tab-top –

ответ

0

Вы не можете позвонить startService() и начать Activity. Вам нужно будет позвонить startActivity(). Обратите внимание, что это не рекомендуется, так как большинство пользователей не хотят видеть приложение каждый раз при загрузке.

+0

У меня есть изменения, чтобы начать работу, но я получил некоторый сбой, и я не могу посмотреть logcat , вызывать его после перезагрузки –

+0

Вы можете проверить logcat после загрузки. Буфер logcat представляет собой круговой буфер ОЗУ и довольно большой. Поэтому даже после того, как устройство загрузится, и вы увидите диалоговое окно «Эти приложения остановились», вы все равно можете подключить logcat. Вам нужно посмотреть на это, чтобы увидеть, где происходит ваш крах. –

0

Я думаю, вы начинаете активность как сервис .. пожалуйста изменить к startActivity()

Intent app = new Intent(this,MainActivity.class);// pass main activity 
    app.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    this.startActivity(app); 
+0

Я изменил его, чтобы начать работу и перейти на мою главную активность, но после сбоя я получил сбой после загрузки –

+0

вы можете разместить свой Logcat? –

+0

no logcat, потому что он сбой после перезагрузки –

0

Вот как это работает для меня:

final Intent i = new Intent(Intent.ACTION_MAIN, null); 

i.addCategory(Intent.CATEGORY_LAUNCHER); 

final ComponentName cn = new ComponentName(
        "your.package", 
        "your.package.MainActivity"); 

i.setComponent(cn); 

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

context.startActivity(i); 
+0

Я использую ваш код и когда моя активность open после того, как я скомпилировал его, он не запускает функцию на главной активности –

+0

Я неправильно понял ваш вопрос, я не понимаю, что вы пытаетесь сделать. –

+0

Вы имеете в виду, что onCreate MainActivity не вызывается, тогда как MainActivity запущен? –

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