Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过意图将数据从活动发送到服务-空指针问题_Java_Android_Android Intent_Service_Nullpointerexception - Fatal编程技术网

Java 如何通过意图将数据从活动发送到服务-空指针问题

Java 如何通过意图将数据从活动发送到服务-空指针问题,java,android,android-intent,service,nullpointerexception,Java,Android,Android Intent,Service,Nullpointerexception,我正在尝试将信息从活动传递到服务 @Override public int onStartCommand(Intent intent, int flags, int startId) { //String totalTimeMilli182 = intent.getStringExtra("totalTimeMilli"); //String cdTimeMilli182 = intent.getStringExtra("cdlTimeMilli"); //Strin

我正在尝试将信息从活动传递到服务

@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;

}
我在logcat中得到一个空指针异常。我不熟悉这一点,但我记得读过,因为intent.getStringExtra在服务中为null。我不确定情况是否如此。谁能告诉我真正的问题是什么,因为我什么都试过了。我们不能使用Bundle extras=this.getIntent().getExtras();那么,我们还能如何解决这个问题呢

下面是我在活动中的内容

         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
service.java

    public void onStart(Intent intent, int startid){
    super.onStart(intent, startid);
    Bundle b=intent.getExtras();
    String[] Array = b.getStringArray("Array");
}

尝试将
getStringExtra
替换为
Bundle…=getExtras()
然后通过
getString(“key”,defaultValue)”检索它