2011-08-02 126 views
1

我想從活動傳遞一個字符串到服務。Android服務活動意圖

  Bundle mBundle = new Bundle(); 
      mBundle.putString("MyString", string); 
      mIntent.putExtras(mBundle); 
      startService(mIntent); 

這是Activity類

  Intent myIntent = getIntent(); 
      String value = myIntent.getExtras().getString(key); 

,這是服務類 它不接受getIntent()方法:SI不知道我會做什麼

回答

1

該服務中的代碼必須放在onStart(Intent intent, int startid)方法中,並且代碼變爲String value = intent.getExtras().getString(key);

0

當您使用啓動服務時服務的onStartCommand被稱爲哪個是處理意圖的好地方。

0

將取決於意圖onStartCommand代碼的一部分:http://developer.android.com/reference/android/app/Service.html#onStartCommand(android.content.Intent,INT,INT)

OnStartCommand是API版本5之前調用的OnStart,請按照有關向後兼容性鏈接文檔的詳細信息在您的應用程序。

@Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     String value = intent.getExtras().getString(key); 
    } 

還記得重碼移動到您在onStartCommand啓動一個後臺線程,否則你會遇到一個應用程序沒有響應的錯誤。