Android异步任务传递单个字符串

Android异步任务传递单个字符串,android,android-asynctask,Android,Android Asynctask,我想将单个字符串传递到asynctask中。有人能告诉我怎么做吗?我的getEntity需要方法getEntity(Activity,String,EntityGetListener),但我一直传递这个字符串[] String pass= story.get(position).getEntity(); new RemoteDataTask().execute(pass); private class RemoteDataTask extends AsyncTask&

我想将单个字符串传递到asynctask中。有人能告诉我怎么做吗?我的getEntity需要方法getEntity(Activity,String,EntityGetListener),但我一直传递这个字符串[]

String pass= story.get(position).getEntity();

        new RemoteDataTask().execute(pass);





private class RemoteDataTask extends AsyncTask<String, String, Long> {

    @Override
    protected Long doInBackground(String... params) {
        // TODO Auto-generated method stub
        EntityUtils.getEntity(activity, params, new EntityGetListener() {
            @Override
            public void onGet(Entity entity) {

                viewcount = entity.getEntityStats().getViews();
            }

            @Override
            public void onError(SocializeException error) {

            }
        });
        return null;
    }

}
String pass=story.get(position.getEntity();
新建RemoteDataTask()。执行(通过);
私有类RemoteDataTask扩展了AsyncTask{
@凌驾
受保护的长doInBackground(字符串…参数){
//TODO自动生成的方法存根
getEntity(活动、参数、新EntityGetListener(){
@凌驾
公共无效onGet(实体){
viewcount=entity.getEntityStats().getViews();
}
@凌驾
public void onError(社交异常错误){
}
});
返回null;
}
}
您已经有了这个

     new RemoteDataTask().execute(pass); // assuming pass is a string
doInbackground

     @Override
     protected Long doInBackground(String... params) {   

             String s = params[0]; // here's youre string
             ...      //rest of the code. 
     }
你可以找到更多信息@

更新


异步任务已取消。应使用kotlin协程、rxjava或任何其他线程机制作为替代方案。

您可以使用构造函数构建
AsyncTask

public class RemoteDataTask extends AsyncTask<String, String, Long> {

    private String data;

    public RemoteDataTask(String passedData) {
        data = passedData;
    }

    @Override
    protected String doInBackground(Context... params) {
        // you can access "data" variable here.
        EntityUtils.getEntity(activity, params, new EntityGetListener() {
            @Override
            public void onGet(Entity entity) {
                viewcount = entity.getEntityStats().getViews();
            }
            @Override
            public void onError(SocializeException error) {
            }
        });
        return null;
    }
}

params[0]
而不是
params
传递到
getEntity
方法有关详细信息,请参阅将
字符串值
传递到
AsyncTask
类时,它表示变量是从内部类中访问的。需要宣布为最终结果。但我需要不时地更改变量值。我怎样才能解决这个问题issue@EJChathuranga如果您正在访问一个不是类变量的变量,并且它是在无注释的内部类中访问的,那么它必须是final。阅读当我尝试调用新的RemoteDataTask()时,您可以在使用前将该变量设为类的成员进行初始化,以克服此问题。执行时,它会显示“无法解析符号‘execute’”。你能告诉我解决问题的方法吗this@AbdulhakimZeinu你应该问一个新问题
private RemoteDataTask mTask;
private void doStuff(){
    String pass = "meow"; // story.get(position).getEntity();
    mTask = new RemoteDataTask(pass);
    mTask.execute();
}