在我的应用程序中,我在应用程序执行操作时显示了ProgressDialog:
mProgressDialog = ProgressDialog.show(
((FriendListActivity) ctx).getParent(), "Please wait...",
"Getting data...", true);
updateDisplay(true);
在updateDisplay方法中,它执行如下操作:
items = new ArrayList<FriendInfo>();
fa = new FriendListAdapter(ctx, R.layout.friendlist_item, items);
setListAdapter(fa);
Thread t = new Thread() {
public void run() {
getFriendList(); //This is where the problem occured
initFriendList();
handler.post(new Runnable() {
public void run() {
mProgressDialog.dismiss();
fa.notifyDataSetChanged();
};
});
}
};
t.start();
在getFriendList()
中,我打电话来获取Facebook用户的信息:
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(
facebook);
mAsyncRunner.request("me/friends&fields=name,picture",
new FriendsRequestListener((FriendListActivity) ctx,
currentuser));
之后,用户的信息将保存在我的数据库中。 initFriendList();
方法(getFriendList()
下方)将使用该数据来初始化视图。
问题是我想要initFriendList()等到getFriendList()完成获取数据。但在getFriendList()
中,我使用AsyncFacebookRunner,因此initFriendList()将立即运行。如何使initFriendList()等待AsyncFacebookRunner在运行之前完成。
答案 0 :(得分:0)
我是Android世界的新手,也许这些可以提供帮助?
http://developer.android.com/guide/components/processes-and-threads.html#AsyncTask
特别是ASYNCTASK
在这里解释得很好..
http://www.youtube.com/watch?v=uzJmi59b6oI&feature=bf_next&list=PL3B389D29207777C7
在正确的轨道上?
-