Use*_*111 6 android android-asynctask android-activity
我有一个ActivityA,有一个按钮.点击后button,它会打开另一个ActivityB.
onCreate()方法ActivityB,我开始AsyncTask连接到服务器并获取结果并将其显示在屏幕上.
这是代码Activity B:
public class ActivityB extends Activity {
AsyncFetch asyncFetch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(null != savedInstanceState) {
return;
}
asyncFetch = new AsyncFetch();
asyncFetch.execute();
}
}
private class AsyncFetch extends AsyncTask<Object, Void, Object> {
@Override
protected void onPostExecute(Object o) {
}
@Override
protected Object doInBackground(Object... params) {
//contacts the http server.
}
}
Run Code Online (Sandbox Code Playgroud)
执行时AsyncFetch,当我按回按时,ActivityB不会立即被摧毁.但是在AsyncTask完成后会被破坏.
如何实现这一点以避免反压冻结?我试过以下:
@Override
protected void onDestroy() {
asyncFetch.cancel(true);
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
但它仍然等待AsyncTask取消或完成.
像GMailapp 一样,当我打开一些东西时.在这个过程中,如果我按下后退按钮,它就会出现Activity.
有没有其他方法来实现后台进程?有design pattern没有实现这个?请告诉我.
任何帮助表示赞赏.
尝试这个:
@Override
public void onBackPressed() {
asyncFetch.cancel(true);
// If you want to finish the activity you can use below code
// finish();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6827 次 |
| 最近记录: |