Android:等到活动开始

时间:2014-01-17 12:15:00

标签: android multithreading android-activity wait

我需要暂停程序执行,直到我的某个活动出现在活动堆栈之上。

此代码不起作用。 如何将处理程序附加到后台线程?

public void pauseUntilOnTop()
    {
        if(!isTopActivity())
        {
            Thread worker = new Thread(runWaitTop);
            worker.start();         

            synchronized(instance) 
            {
                try 
                {
                    // Calling wait() will block this thread until another thread
                    // calls notify() on the object.
                    instance.wait();
                } 
                catch (InterruptedException e) 
                {
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

使用活动生命周期方法。

方法onResume是一个好的开始:当Activity准备就绪并且可能会收到用户操作时调用它。

请注意,激活生命周期方法总是具有停用的对应物,例如: onPause代表onResume,可能会多次调用它们。

Btw研究了ServicesAsyncTaskLoader等主题,看看它们是否符合您的需求,而不是使用低级别的线程API。此外,android.os包上还有大量更高级别的API可用于解决常见的Android方案。