我需要将对象从活动移动到服务。这是我在活动方面的尝试。
Waveform waveform = new Waveform();
Intent intent = new Intent(this, StimulationService.class);
Bundle bundle = new Bundle();
bundle.putParcelable("test", (Parcelable) waveform);
intent.putExtras(bundle);
startService(intent);
我已将此代码放在服务的onStart()函数中。
Bundle bundle = this.getIntent().getExtras();
if(bundle!=null)
mWaveform = bundle.getParcelable(waveform);
我在getParcelable()中遇到函数“getIntent”和“waveform”的错误。 任何帮助或指导表示赞赏。
答案 0 :(得分:0)
getIntent
方法。而是将意图作为参数传递给onStart
方法。所以你应该使用那个参数。getParcelable
方法需要String
,如果是您的测试代码,则应为"test"
。答案 1 :(得分:0)
为了将对象放入Bundle
,您需要使对象Class
实现Parcelable
。您可以在此处查看如何使用Parcelable
Android Parcelable Example。
然后在onStart (Intent intent, int startId)
方法中,您可以从Intent
public void onStart(Intent intent, int startId) {
Wafeform waveform=intent.getExtras().getParcelable("test");
}