相关疑难解决方法(0)

从另一个线程在主线程中运行代码

在android服务中,我创建了一些用于执行某些后台任务的线程.

我有一种情况,线程需要在主线程的消息队列上发布某些任务,例如a Runnable.

有没有办法获得Handler主线程并从我的其他线程发布Message/ Runnable到它?

谢谢,

java multithreading android android-handler

302
推荐指数
11
解决办法
25万
查看次数

异步任务Android执行

这是在一次Android采访中被问到的.我被问到是否可以从异步任务1的doInBackground()方法启动另一个异步任务(让它成为Task2)(让它成为Task1).我已经阅读了以下文档:

必须在UI线程上创建任务实例.

必须在UI线程上调用execute(Params ...).

根据这些陈述,我认为不应该从另一个任务的后台方法启动任务.此外,异步任务有UI方法(不能在后台线程上使用),所以加强了我的论点,我回答它是不可能的.

在检查一个简单的演示应用程序时,我看到它确实可以这样做.一些演示代码:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = this;
        init();
        Log.v ("gaurav", "Thread is : " + Thread.currentThread().getName());
        Task1 task = new Task1();
        task.execute();
    }

class Task1 extends AsyncTask {
    @Override
    protected Object doInBackground(Object... params) {
        // TODO Auto-generated method stub
        Log.v ("gaurav", "Thread task 1 is : " + Thread.currentThread().getName());

        Task2 task = new Task2();

        task.execute();
        return null;
    }
}

class Task2 extends AsyncTask {
    @Override
    protected Object doInBackground(Object... params) { …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

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