Android异步任务传递单个字符串
我想将单个字符串传递到asynctask中。有人能告诉我怎么做吗?我的getEntity需要方法getEntity(Activity,String,EntityGetListener),但我一直传递这个字符串[]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&
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();
}