我有一个项目,我想编写一些使用Internet服务从MySQL
服务器获取数据的函数。这些功能在某些非活动类中。我打算从不同的活动中调用这些功能。我使用AsyncTask
发出 HTTP 请求。以下是我设计的框架。
public class MyLibrary{
String myData;
protected String getMyData(String param){
HashMap<String, String> params = new HashMap<>();
params.put("param1", apicall);
params.put("param2", param);
MyAsyncClass myAsyncClass = new MyAsyncClass(params);
myAsyncClass.execute();
/* Here after finishing the task I want to return the data to the caller */
return myData;
}
private class MyAsyncClass extends AsyncTask<String, Integer, String> {
MyAsyncClass(HashMap<String, String> params) {
this.postData = params;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
RequestHandler requestHandler = new RequestHandler();
return requestHandler.sendPostRequest(GlobalConstants.myurl, postData);
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
/* parse code here ... */
}
}
}
此类活动将通过我的如下活动进行访问。
public class SampleActivity extends AppCompatActivity{
String returnedData;
@Override
protected void onCreate(Bundle savedInstanceState) {
MyLibrary myLibraryObject = new MyLibrary();
returnedData = myLibraryObject.getMyData("cih");
/* do something with returnedData */
}
}
任何建议对我都会有很大帮助。由于我是新手,这可能是一个愚蠢的问题,但是我的概念是重用代码。
答案 0 :(得分:0)
我认为翻新可以解决您的问题。您可以搜索retrofit interceptor
答案 1 :(得分:0)
如果您打算以这种异步方式进行操作,则应使用接口作为回调,否则您可以通过在AsyncTask中调用get方法来获得结果
falsey