2012-09-19 76 views
1

我有自己運行的服務(服務自動啓動)。
將數據從服務傳遞到活動

而且我有活動。
本次活動按鈕即可啓動方法DoIt()

Button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     DoIt(); 
    } 
}); 

,當我按下按鈕,方法工作的一些數據被寫入到變量data在我的服務。
我可以看到日誌data

public String getMessage(String data) { 
... 
Log.d(TAG, "Our Data: " + data); 
return date; 
... 

但我怎麼能看到我的活動這個數據(下鍵),按下按鈕?
謝謝。

回答

1

您無法從您的活動中看到這些數據。
製作一個應用程序類會讓你更容易。您可以將數據保存在應用程序類中,以便服務可以更新它,並且活動可以檢索它。不知道如果那就是你想要的。

0

添加處理您的活動像這樣添加到您的服務,使您的活動會被立即通知: -

Handler handler = new Handler() { 
     public void handleMessage(Message message) { 
      Object path = message.obj; 
      if (message.arg1 == RESULT_OK && path != null) { 
       Toast.makeText(context, 
         "Success" + path.toString(), Toast.LENGTH_LONG) 
         .show(); 
      } else { 
       Toast.makeText(context, "Operation failed.", 
         Toast.LENGTH_LONG).show(); 
      } 

     }; 
    }; 

,並在類似這樣的消息對象發送從服務的價值: -

Messenger messenger = (Messenger) extras.get("MESSENGER"); 
       Message msg = Message.obtain(); 
       msg.arg1 = data;//your value here 
       msg.obj = data; 
       try { 
        messenger.send(msg); 
       } catch (android.os.RemoteException e1) { 
        Log.w(getClass().getName(), "Exception sending message", e1); 
       } 

希望工程。

+0

我有String數據msg.arg1 = data(類型不匹配:無法從字符串轉換爲int) – user1680782

+0

Messenger messenger =(Messenger)extras.get(「MESSENGER」);(extras無法解析) – user1680782

+1

/**當您啓動服務時使用此功能**/Messenger messenger = new Messenger處理程序); \t \t \t \t intent.putExtra( 「信使」,信使); \t \t \t \t \t \t \t \t intent.putExtra(「urlpath」,「無論這是我的要求」); \t \t \t \t startService(intent); – Chandrashekhar

相關問題