我正在尝试将信息从 Activity 传递到服务。
我在 logcat 中遇到空指针异常。我对此很陌生,但我记得读过,这是因为服务中的intent.getStringExtra为空。我不确定情况是否如此。有人可以告诉我实际的问题是什么,因为我已经尝试了一切。我们不能使用 Bundle extras = this.getIntent().getExtras();那么我们还能如何解决这个问题呢?
下面是我在 Activity 中的内容
flashButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
strobeDIV++;
try {
Intent i1 = new Intent(LeLauncher.this, FlashServ.class);
Bundle b = new Bundle();
totalMS = String.valueOf(totalMilli);
cdMS = String.valueOf(totalMilli);
strobeDIVString =String.valueOf(strobeDIV);
b.putString("totalTimeMilli", totalMS);
b.putString("cdTimeMilli", cdMS);
b.putString("strobeDIV", strobeDIVString);
i1.putExtra("totalTimeMilli", totalMilli);
i1.putExtra("cdTimeMilli", cdMilli);
i1.putExtra("strobeDIV", strobeDIV);
i1.putExtras(b);
LeLauncher.this.startService(i1);
flashText1.setText("Seconds Left: 1");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
下面是我的服务内容。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//String totalTimeMilli182 = intent.getStringExtra("totalTimeMilli");
//String cdTimeMilli182 = intent.getStringExtra("cdlTimeMilli");
//String strobeDIVstring182 = intent.getStringExtra("strobeDIV");
Bundle b=intent.getExtras();
String totalTimeMilli182 = b.getString("totalTimeMilli");
String cdTimeMilli182 = b.getString("cdlTimeMilli");
String strobeDIVstring182 = b.getString("strobeDIV");
fooTimeTotal = Integer.parseInt(totalTimeMilli182);
fooCDTotal = Integer.parseInt(cdTimeMilli182);
strobeDIV = Integer.parseInt(strobeDIVstring182);
strobeTimer182();
return START_STICKY;
}
最佳答案
Activity .java
Intent intent=new Intent(ServicesActivity.this,FileManagerRequest.class);
Bundle b=new Bundle()
b.putStringArray("Array", your_array)
intent.putExtras(b);
startService(intent);
in you service
服务.java
public void onStart(Intent intent, int startid){
super.onStart(intent, startid);
Bundle b=intent.getExtras();
String[] Array = b.getStringArray("Array");
}
关于java - 如何通过 Intent 从 Activity 向服务发送数据 - 空指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455922/