Android Asynctask传递单个字符串
我想将单个字符串传递给一个asynctask。任何人都可以告诉我它是如何完成的?我getEntity需要的方法getEntity(活动,字符串,EntityGetListener),但我一直通过这个字符串[]Android 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;
}
}
您已经有此
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.
}
你可以查找更多信息@
http://developer.android.com/reference/android/os/AsyncTask.html
将'String value'传递给'AsyncTask'类时,它表示该变量是从内部类中访问的。需要声明为final。但我需要随时更改变量值。我如何解决这个问题 –
@EJChathuranga如果你正在访问的变量不是一个类变量,并且它在匿名内部类中访问,它必须是最终的。阅读https://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-class。在使用之前,您可以使变量成为类初始化的成员以克服此问题 – Raghunandan
您可以使用构造函数构建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;
}
}
在应用程序(Activity
,Service
等),就可以使用;
private RemoteDataTask mTask;
private void doStuff(){
String pass = "meow"; // story.get(position).getEntity();
mTask = new RemoteDataTask(pass);
mTask.execute();
}
通'PARAMS [0]'代替'params'到'getEntity'方法的更多信息请参见[可变参数](http://docs.oracle.com/javase/1.5.0/docs/guide /language/varargs.html) –