2012-01-13 135 views
0

Hai我有一個應用程序,使用後臺service.its運行清晰。如果我的手機關閉,我的服務是關閉service.when我的應用程序啓動後,只有我的後臺服務被陳述。我想重新啓動服務時再次手機關機了? 有可能嗎? 任何人只要有代碼如何在移動設備打開時在android中啓動應用程序?

更新

public class loginForm extends Activity 
{ 
@Override protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView (R.layout.login); 
receiver = new ConnectionReceiver(); 
registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 
} 
} 

private class ConnectionReceiver extends BroadcastReceiver{ 

     private Timer mTimer; 
     private TimerTask mTimerTask; 

     @Override 
     public void onReceive(Context context, Intent intent) { 
       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() { 

              //Toast.makeText(getBaseContext(), "Disenabled provider " + provider, 
                ///Toast.LENGTH_SHORT).show(); 
              try{ 
              insertAllGpsInformation(); 
              } 
              catch(Exception e) 
             { 
              Toast.makeText(getBaseContext(), "Your Net Connected or Not Login to Net"+"", Toast.LENGTH_LONG).show(); 
              Log.e("Upload Picture Error:",e.getMessage()); 
             } 
             } 


            }); 

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


         } 
     } 
       } 

} 

回答

0

註冊爲ACTION_BOOT_COMPLETEDsee here for details)解釋。在啓動時啓動您的服務。

+0

receiver = new ConnectionReceiver(); registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));開始我的服務,像這樣,我的 category android:name =「android.intent。 category.HOME「>我的清單文件。但我的服務不是staretd。 – Mercy 2012-01-13 09:47:39

0

創建具有BOOT COMPLETED動作意圖的廣播接收器。

請參考以下更多的幫助鏈接:

  1. http://blog.gregfiumara.com/?p=82
  2. http://marakana.com/forums/android/examples/60.html

您可以使用

public class BootReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     // TODO Auto-generated method stub 
     Log.i("BootReceiver :: Start Booting.."); 

     Intent i = new Intent(context, StartService.class); // Start your service class 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i);  
    } 
    } 

,並使用broadcastreciever在AndroidManifest.xml爲

<receiver android:name=".receiver.BootReceiver"> 
<intent-filter> 
<action android:name="android.intent.action.BOOT_COMPLETED" /> 
</intent-filter> 
</receiver> 
+0

receiver = new ConnectionReceiver(); registerReceiver(receiver,new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));開始我的服務是這樣,我的<接收器的android:NAME = 「ConnectionReceiver」> \t <意圖過濾器> \t \t <操作機器人:名字= 「android.intent.action.BOOT_COMPLETED」> \t \t \t \t \t \t \t \t我的清單文件。但我的服務不是staretd。 – Mercy 2012-01-13 09:47:12

+0

你在哪裏盯着服務,maeant你把HOME服務的意圖放在HOME上?請把代碼.. – jenuine 2012-01-13 10:00:01

+0

先生我更新我的代碼 – Mercy 2012-01-13 12:11:07

相關問題