我有一项主要活动。 从这个活动我调用另一个公共类的方法。
在主要活动中我称之为这样的方法:
// Background Task
new Sync.SyncMYSQL().execute();
如果被调用的方法完成,有没有办法在intent(主活动之外)中启动?
public class Sync {
static class SyncMYSQL extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
// DO SOMETHING
return null;
}
protected void onPostExecute(String result) {
// DO SOMETHING
}
}
}
答案 0 :(得分:1)
在asyncTask类中,您可以覆盖 onPostExecute 方法并在那里编写活动开始代码
在doInBackground方法之后执行:)
在帖子内部执行预初始化所有可能的Intent并使用开关处理或if else
样品
public class Sync {
static class SyncMYSQL extends AsyncTask<String, String, String> {
int type;
public SyncMYSQL(int intentType){
type=intentType;
}
@Override
protected String doInBackground(String... params) {
// DO SOMETHING
return null;
}
protected void onPostExecute(String result) {
switch(type){
case 0: Intent in=new Intent(context,destinationActivity1);
startActivity(in);
break;
case 1: Intent in=new Intent(context,destinationActivity2);
startActivity(in);
break;
}
}
}
}
像这样调用这个异步任务
new Sync.SyncMYSQL(<integer_value>).execute();
答案 1 :(得分:0)
使用界面执行此任务,例如。 1 GT;创建界面
public interface AsyncTaskListener {
public void onHttpResponse(String callResponse);
public void onError(String error, int pageId);
}
2 - ;比Async Activity使用这个
AsyncTaskListener listener;
private void sendResponse(String response) {
if (listener != null) {
listener.onResponse(response);
}
}
在AsyncTask OnPost和响应字符串上使用sendResponse方法输入&#34;成功&#34;然后实现第一个活动的界面,并检查响应是否为&#34;成功&#34;而不是通过意图。