【发布时间】:2015-02-11 14:39:32
【问题描述】:
在我的应用程序中,我需要在横向模式下附加两个片段。为了做到这一点,第二个片段需要等到第一个片段被附加(添加)后,才能被添加。原因是第一个片段需要执行第二个片段需要的功能。我设法通过一个线程做到了这一点,但在这种情况下,它只等待指定的时间量,然后再附加第二个片段,如果第一个片段没有在给定的时间内附加,应用程序将崩溃,因为第二个片段片段没有必要的数据。
下面的代码有什么更好的做法(示例)(比如等到第一个片段被附加,并且在某个时间间隔内没有)? :
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.mainContent, fragment).commit();
Thread thread = new Thread() {
@Override
public void run() {
try {
synchronized (this) {
wait(1000);
}
} catch (InterruptedException e) {
}
if (isLandscape) {
openSecondFragment(mIndex, R.id.rightConent);
}
}
};
thread.start();
非常感谢。
第一个片段中需要执行的处理程序:
@SuppressLint("HandlerLeak")
protected void loadAccountList() {
LoadAccountList loadAccountListThread = new LoadAccountList(new Handler() {
@SuppressWarnings("unchecked")
public void handleMessage(Message msg) {
switch (msg.what) {
case LOAD_SUCCESSFUL_CODE:
items = (ArrayList<Account>) msg.obj;
break;
case LOAD_FAILED_IOEXCEPTION_CODE:
getActivity().showDialog(ERROR_DIALOG);
break;
default:
break;
}
}
});
loadAccountListThread.start();
【问题讨论】:
标签: android multithreading android-fragments