2012-01-14 5 views
0

У меня есть приложение, использующее фоновое обслуживание. Если мой мобильный телефон выключен, мой сервис отключен. Я пытаюсь перезапустить службу, когда телефон загружается, но он не запускается. Кто-нибудь может мне помочь? Я использую этот код:Запустите BroadcastReceiver в Android, если включен мобильный телефон?

<receiver android:name=".ConnectionReceiver" 
     android:enabled="true" android:exported="false" > 
      <intent-filter>   
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
      </receiver> 
    </application> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

обновления OnReceive функция()

public void onReceive(Context context, Intent intent) { 
      if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { 
       Intent i = new Intent(); 
       i.setAction("com.android.ConnectionReceiver"); 
       context.startService(i); 
      } 
       NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 

       if(null != info) 
       { 
         String state = getNetworkStateString(info.getState()); 
         if(state.equals("Connected")){ 
          mTimer = new Timer(); 
          mTimerTask = new TimerTask() { 
           @Override 
           public void run() { 
            loginForm.this.runOnUiThread(new Runnable() { 

             @Override 
             public void run() { 


                insertAllGps(); 



            }); 

           } 
          }; 
          mTimer.scheduleAtFixedRate(mTimerTask,180000,180000); 
+0

внутри службы, что вы пытаясь сделать? – confucius

+0

Получение значения широты и долготы – Mercy

+0

У вас есть это разрешение ? – confucius

ответ

0

// использовать эту строку вместо равенства использовать equalsIgnoreCase

if (Intent.ACTION_BOOT_COMPLETED.equalsIgnoreCase(intent.getAction())) 

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

  • Нет связанных вопросов^_^