我最近参与了一些特别是 Java 和 Android 的并发编程。
我有一些关于处理程序的问题。1 - 众所周知,我们需要将 Handler 与线程相关联,它将在调用它的线程上运行。然而,在一些关于 SO 的例子中,用户正在做
public class MainActivity extends Activity
{
private Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState)
{
handler.postDelayed(runnable, 1000);
}
private Runnable runnable = new Runnable()
{
public void run()
{
//Do whatever
handler.postDelayed(this, 30000);
}
};
在这个例子中,我假设我们在 UI 线程上做 Handler 的事情,对吗?
我可以在这里进行网络操作//DO Whatever
吗?我不这么认为,因为我们在主线程上。
这样做没有意义吗?因为有人可以使用 AsyncTask 来替换这个任务?
我怎样才能应用这个相同的例子,但不是在 UI 线程上,而是在一个单独的线程上?
线程或 Runnables 是否有类似于 post delay 的东西?
仅将处理程序用于其后延迟功能而不是主要任务处理程序是为常见的,即作为线程和 UI/Activity 之间的中间人?