Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 - Fatal编程技术网

Java 将字符串值传递给后台服务

Java 将字符串值传递给后台服务,java,android,Java,Android,请在这方面指导我。谢谢你的帮助 我的后台服务是敬酒ABC //-------------------字符串displayingText=“ABC”----------------- 我有两个字符串,ABC和DEF在mainactivity.java 如何将值displayingText从主活动传递到此服务 如何在toast ABC完成后将displayingText更改为DEF Java public class MyService extends Service { public static

请在这方面指导我。谢谢你的帮助

我的后台服务是敬酒ABC

//-------------------字符串displayingText=“ABC”-----------------

我有两个字符串,ABC和DEF在
mainactivity.java

  • 如何将值displayingText从主活动传递到此服务
  • 如何在toast ABC完成后将displayingText更改为DEF
  • Java

    public class MyService extends Service {
    public static final long INTERVAL=3000;//variable to execute services every 5 second
    private Handler mHandler=new Handler(); // run on another Thread to avoid crash
    private Timer mTimer=null; // timer handling
    
    //这个计划行不通。我应该把它放在哪里或怎样放

    Intent myIntent = getIntent(); 
        if (myIntent !=null && myIntent.getExtras()!=null)
    String value = myIntent.getExtras().getString(PassToService);
    
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        throw new UnsupportedOperationException("unsupported Operation");
    }
    @Override
    public void onCreate() {
    
    
        // cancel if service is  already existed
        if(mTimer!=null)
            mTimer.cancel();
        else
            mTimer=new Timer(); // recreate new timer
        mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(),0,INTERVAL);// schedule task
    
    }
    
    
        @Override
    public void onTaskRemoved(Intent rootIntent) {
        stopSelf();///its will stop service
        super.onTaskRemoved(rootIntent);
    }
    @Override
    public void onDestroy() {
        Toast.makeText(this, "In Destroy", Toast.LENGTH_SHORT).show();//display toast when method called
        mTimer.cancel();//cancel the timer
        super.onDestroy();
    
    }
    
    //inner class of TimeDisplayTimerTask
    private class TimeDisplayTimerTask extends TimerTask {
        @Override
        public void run() {
    
            // run on another thread
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    // display toast at every 10 second
                    //String displayingText = "ABC";
                    String displayingText = myIntent.getStringExtra("PassToService");
                    final Toast Notify = Toast.makeText(getApplicationContext(), displayingText, Toast.LENGTH_SHORT);
                    Notify.setGravity(Gravity.CENTER, 0, 0);
                    Notify.show();
    
                    Handler cancelToast = new Handler();
                    cancelToast.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Notify.cancel();
                        }
                    }, 1000);
    
                }
            });
        }
    }
    

    }

    您可以通过将值从活动传递到服务来实现-


    startService(新的意图(YourActivity.Service.class.putExtra(“key”、“value”))

    变量的可能副本将从文件中读取,并且不应使用AsyncTask。我们是否可以在服务中实际使用getIntent()方法?我已经试过了,但是内部服务意图。getIntExtra没有work@Overridepublic int-onStartCommand(Intent-Intent,int-flags,int-startId){if(Intent!=null&&Intent.hasExtra(“key”){String i=Intent.getStringExtra(“key”);}试试这个,你能再次建议我把我上传的文件中的getstringextra放在哪里吗?