在Activity中,我已经传递了像这样的值paramVal
Intent srv = new Intent(this, TestService.class);
startService(srv);
//Intent intent =new Intent("com.example.firstapplication.STARTACTIVITY");
//intent.putExtra("myFirstKey", paramVal);
//intent.putExtra("myFirstKey", paramVal);
Bundle bundle = new Bundle();
bundle.putCharSequence("myFirstKey", paramVal);
intent.putExtras(bundle);
并且在服务中我正在检索这样的值
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Bundle bundle = intent.getExtras();
data = (String) bundle.getCharSequence("myFirstKey");
System.out.println("data checking"+data);
}
但我得到了行
的空指针异常data = (String) bundle.getCharSequence("myFirstKey");
在服务中
我是否应该在某处调用onstart方法。请告诉我问题在哪里?
答案 0 :(得分:2)
在您的活动中:
Intent lIntent = new Intent(this, TestService.class);
lIntent.putExtra("myFirstKey", <your String param here>);
startService(lIntent);
在您的服务中:
String lDataString = intent.getStringExtra("myFirstKey");
作为旁注:
答案 1 :(得分:0)
你在传递额外内容之前就开始了这项服务......
答案 2 :(得分:0)
它可能有效,你正在改变指令的顺序。在意图中插入值之前,服务正在启动。
Intent srv = new Intent(this, TestService.class);
Bundle bundle = new Bundle();
bundle.putCharSequence("myFirstKey", paramVal);
intent.putExtras(bundle);
startService(srv);