2013-02-13 131 views
0

我在應用程序中創建了一項服務。 這是我使用的代碼。Android服務未啓動

public class LocationService extends Service{ 

@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    Log.e("Location Service", "onStrat of service"); 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    Log.e("Location Service", "onCreate of service"); 
    LocationOperations locationOperations = new LocationOperations(getBaseContext()); 
    locationOperations.retrieveLocation(); 
} 

}

在清單文件中還定義了applicatoin標籤

<service android:name=".LocationService" 
     android:process=":LocationService"> 
    </service> 

調用在活動

Context context = this; 
    Intent service = new Intent(context, LocationService.class); 
    service.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startService(service); 

的onCreate方法本服務內,但該服務不我在LogCat窗口中看不到Log消息 請幫忙

+0

http://stackoverflow.com/questions/4759676/why-is-this-simple-service-not-starting – Nermeen 2013-02-13 07:48:22

+0

你爲什麼要在一個單獨的過程中創建你的服務? – 2013-02-13 08:05:16

+0

因爲我想通過GPS,WIFI或Cell Tower獲取位置座標,如果有任何一個連續可用,直到應用程序關閉。所以我想在後臺線程中運行。 – 2013-02-13 09:21:17

回答

0
 ServiceConnection serviceConnection = new ServiceConnection() { 

       @Override 
       public void onServiceDisconnected(ComponentName name) { 
           //do stuff when service disconnected 
       } 

       @Override 
       public void onServiceConnected(ComponentName name, IBinder service) { 
           //do stuff when service connected 
       } 
      }; 


context.bindService(new Intent(context, LocationService.class), serviceConnection , 
        Context.BIND_AUTO_CREATE); 

希望這有助於

0

在onStart()已過時,覆蓋OnStartCommand()相反,這應該是函數多數民衆贊成稱爲當你調用startActivity()。

此外,我不知道爲什麼你添加了Intent.FLAG_ACTIVITY_NEW_TASK標誌你的意圖。我不認爲它在這裏需要。