【发布时间】:2018-10-10 17:11:12
【问题描述】:
所以我有一个异步任务,它在 doInBackground 中进行一些操作,然后在 onPostExecute 中我在完成后将变量添加到 sharedpreferences 我想使用其中一些值,但它们没有更新。我需要“更新”我的活动,比如改变方向或其他东西。即使后面有一些代码,似乎最后还是执行了异步任务。
在我的活动中:
myAsyncTask.execute(location1);
System.out.println("Current_time: " + sharedPreferences.getString("CURRENT_TIME", ""));
在 ASyncTask 中的 PostExecute:
editor.putString("CURRENT_TIME", channel.getItem().getCondition().getDate());
Log.i("SetValues", "now");
editor.apply();
结果是:
I/System.out: Current_time: Mon, 30 Apr 2018 07:00 PM YEKT
I/SetValues: now
我想要的是完成异步任务然后休息,所以首先'SetValues'然后打印。
【问题讨论】:
-
异步调用。这就是它的行为方式。当您调用
execute()时会启动一个新线程。所以你需要在onPostExecute()中完成所有工作。
标签: android asynchronous task