所以我需要將一個Activity中定義的btDevice發送到params中的服務,以便我可以得到它。下面是該服務的代碼:如何將活動設置爲服務?
public class Servicio extends JobService implements ServiceConnection {
private static BluetoothDevice btDevice;
public TemperaturaFragment temperaturaFragment;
private MetaWearBoard mwBoard;
@Override
public boolean onStartJob(JobParameters params) {
mJobHandler.sendMessage(Message.obtain(mJobHandler, 1, params));
params.getExtras(btDevice = getParcelableExtra(EXTRA_BT_DEVICE));
getApplicationContext().bindService(new Intent(this, BtleService.class), (ServiceConnection) this, BIND_AUTO_CREATE);
return true;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
private Handler mJobHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
Toast.makeText(getApplicationContext(),
"JobService task running", Toast.LENGTH_SHORT)
.show();
jobFinished((JobParameters) msg.obj, false);
return true;
}
});
,這裏是我要發送的是,在活動中定義的對象:
btDevice= getIntent().getParcelableExtra(EXTRA_BT_DEVICE);
我想用builder.setExtras(the object here)
,然後在服務getExtras(get the object)
但設置的額外說這是一個BluetoothDevice,並需要一個捆綁。任何想法?謝謝您的幫助。
我把這個並不起作用,因爲數據是剛讀,不發送
Intent serviceIntent = new Intent(Servicio.class.getName())
serviceIntent.putExtra(1, getIntent().getParcelableExtra(EXTRA_BT_DEVICE));
getApplicationContext().startService(serviceIntent);
您嘗試通過設備ID?怎麼樣使用共享首選項。 –
我沒有試圖通過de id,我試圖傳遞它獲取的數據,現在我看到序列化方法,任何想法? :( –