2012-01-14 5 views
0

バックグラウンドサービスを使用しているアプリケーションがあります。私の携帯電話がオフになっている場合、私のサービスはオフになっています。電話機が起動したときにサービスを再開しようとしていますが、起動していません。誰か助けてくれますか?携帯電話の電源を入れたらAndroidでBroadcastReceiverを起動しますか?

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

を使用する代わりに、このラインを使用する()関数

<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:私はこのコードを使用していますやろうとしている? – confucius

+0

緯度と経度の値が – Mercy

+0

になっていますか?この許可は、ですか? – confucius

答えて

0

が//等号があなたを何であるか、あなたのサービス内equalsIgnoreCase

if (Intent.ACTION_BOOT_COMPLETED.equalsIgnoreCase(intent.getAction())) 
関連する問題