我有一个活动(主要活动),它显示在另一个线程上运行的操作的进度。它有一个被线程调用的处理程序成员,这个处理程序更新进度条等。
如果在此过程中改变了方向,则活动将被销毁并在另一个方向上重新创建。有什么建议可以解决这个问题吗?这一定是一个足够普遍的问题,但我认为我不理解范式。我对android开发很陌生,这似乎是一个基础问题。希望这里有人可以提供帮助。
例子。SomeClass 获取对处理程序的引用(方法 SomeClass.setHandler()),并向其发送带有状态信息的消息。
public class MainActivity extends Activity {
private Handler handler;
private createHandler()
{
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// updates views in MainActivity, e.g. ProgressBar and TextView
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createHandler();
}
protected void doThingsInSepThread() {
Thread t = new Thread(new Runnable () {
@Override
public void run() {
SomeClass sc = new SomeClass();
sc.setHandler(handler);
sc.method();
}
});
}
....
};