我需要暂停程序执行,直到我的某个活动出现在活动堆栈之上。
此代码不起作用。 如何将处理程序附加到后台线程?
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)
{
}
}
}
}
答案 0 :(得分:0)
使用活动生命周期方法。
方法onResume
是一个好的开始:当Activity准备就绪并且可能会收到用户操作时调用它。
请注意,激活生命周期方法总是具有停用的对应物,例如: onPause
代表onResume
,可能会多次调用它们。
Btw研究了Services
,AsyncTask
和Loader
等主题,看看它们是否符合您的需求,而不是使用低级别的线程API。此外,android.os
包上还有大量更高级别的API可用于解决常见的Android方案。