[AsyncTask代码已添加到Android中的服务中

问题描述 投票:0回答:2

[我是Android的初学者,正在创建android应用程序,与Siemens PLC通讯正常,但是如果我仅单击android中显示的数据按钮,我想在服务中运行此代码,我不知道如何添加服务中的代码(下方)

protected String doInBackground(String... strings) {
            try{

                client.SetConnectionType(S7.S7_BASIC);
                int res = client.ConnectTo("10.0.2.2",0,1);
                if(res == 0)
                {
                    byte[] data = new byte[4];
                    res = client.ReadArea(S7.S7AreaDB,1,0,2,data);
                    ret = "Values  "+S7.GetWordAt(data,0);
                }
                else {
                    ret = "Err:"+S7Client.ErrorText(res);
                }
                client.Disconnect();
            }
            catch (Exception e)
            {
                ret= "Exe"+e.toString();
                Thread.interrupted();
            }
            return "Executed";
        }

上面的代码运行正常,但是此代码已添加到服务中,因此我创建了一个服务

public class MyService extends Service {
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // Let it continue running until it is stopped.
        Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
        return START_STICKY;
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
    }
}

帮助我在哪里提供代码

android android-service siemens
2个回答
0
投票

请参见此示例:-


0
投票

您可以通过AsyncTask中的onStartCommand方法调用Service

© www.soinside.com 2019 - 2024. All rights reserved.