相关疑难解决方法(0)

最佳实践:方向更改期间的AsyncTask

AsyncTask 在另一个线程中运行复杂任务是一件好事.

但是当AsyncTask仍在运行时有方向更改或其他配置更改时,将Activity消除并重新启动电流.并且当实例AsyncTask连接到该活动时,它会失败并导致"强制关闭"消息窗口.

所以,我正在寻找某种"最佳实践"来避免这些错误并防止AsyncTask失败.

到目前为止我看到的是:

  • 禁用方向更改.(当然不是你应该如何处理它.)
  • 让任务存活并通过新的活动实例更新它 onRetainNonConfigurationInstance
  • 只需在销毁时取消任务,ActivityActivity在再次创建时重新启动它.
  • 将任务绑定到应用程序类而不是活动实例.
  • "shelf"项目中使用的一些方法(通过onRestoreInstanceState)

一些代码示例:

屏幕旋转期间的Android AsyncTasks,第一部分第二部分

ShelvesActivity.java

你能帮我找到最好的方法来解决问题并且易于实现吗?代码本身也很重要,因为我不知道如何正确解决这个问题.

multithreading android exception

149
推荐指数
3
解决办法
7万
查看次数

多次执行AsyncTask

在我的Activity中,我使用了一个从AsyncTask扩展的类和一个参数,该参数是AsyncTask的一个实例.我打电话的时候mInstanceOfAT.execute("")一切都很好.但是当我按下再次调用AsyncTask的更新按钮时应用程序崩溃(如果网络作业不起作用).因此出现了一个例外情况

无法执行任务:任务已经执行(任务只能执行一次)

我试过为Asyctask的实例调用cancel(true),但它也不起作用.到目前为止唯一的解决方案是创建Asyntask的新实例.这是正确的方法吗?

谢谢.

android android-asynctask

127
推荐指数
2
解决办法
9万
查看次数

在android中安排任务

我使用下面的代码来安排android中的任务,但它没有给出任何结果.请同样告知.

int delay = 5000; // delay for 5 sec.
int period = 1000; // repeat every sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {

   public void run() {
      Toast.makeText(getApplicationContext(),"RUN!",Toast.LENGTH_SHORT).show();
   }

}, delay, period);
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
1
解决办法
2万
查看次数