2010-08-02 61 views
1

我有一個在我的主要活動中啓動的本地服務。該服務負責網絡I/O。它也與我的應用程序中的其他活動交互。直到現在,該服務僅向活動「提供」數據(使用回調而非意圖)。Android - 將數據從活動發送到服務

現在我需要從我的活動向服務發送數據(自定義對象)。我理解一種使用Intents的方法。我知道可以通過覆蓋我的服務中的onStartCommand()來獲得服務中的意圖。但是,我不清楚每次從發送活動中廣播一個Intent時是否會調用onStartCommand。服務也可以是BroadcastReceiver?如果是 - 如何?

謝謝。

回答

4

您可以在服務中創建一個BroadcastReceiver對象並註冊它以偵聽您想要的任何廣播事件。這件事情是這樣的:

BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     //handle the broadcast event here 
    } 
}; 

@Override 
public void onCreate() { 
    super.onCreate(); 

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF); 
    filter.addAction(Intent.ACTION_SCREEN_ON); 
    registerReceiver(mScreenStateReceiver, filter); 

} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    unregisterReceiver(mScreenStateReceiver); 
} 

問候,

相關問題