1
我試圖從廣播開始一個服務,但由於某種原因,我的服務永遠不會被調用。 這是我的接收器:startService方法被調用,但沒有任何反應
private void initReceiver() {
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("telecom.IT.DigiCARE.REC")) {
Log.d("MainActivity", "Intent received from server!");
byte[] data = intent.getByteArrayExtra("Data");
String params = intent.getStringExtra("Params");
Intent i = new Intent(MainActivity.this, DecodeService.class);
i.putExtra("Data", data);
i.putExtra("Params", params);
startService(i);
}
}
};
registerReceiver(receiver, new IntentFilter("telecom.IT.DigiCARE.REC"));
}
這是我的服務:
public class DecodeService extends Service {
@Override
public void onStart(Intent intent, int startId) {
String params = intent.getStringExtra("Params");
byte[] data = intent.getByteArrayExtra("Data");
decodeMessage(params, data);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String params = intent.getStringExtra("Params");
byte[] data = intent.getByteArrayExtra("Data");
decodeMessage(params, data);
return START_STICKY;
}
}
我期待的錯誤是在某處的清單,但我沒有看到它。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.telecomIT.digicare"
android:versionCode="1"
android:versionName="1.0" >
<services
android:name=".DecodeService"
android:enabled="true" />
這不是因爲廣播是不行的,因爲startService被調用,但後來什麼也沒有發生..
你是什麼意思「沒什麼反應」?你期望發生什麼? – m0skit0
我希望調用服務中的啓動方法,但這種情況不會發生。 –
你的logcat看起來像什麼? –