来自被破坏的活动/片段的吐司,getString问题

时间:2013-01-24 09:17:52

标签: android android-fragments android-ui

我有一个带有UI的片段,负责执行短的异步api调用。当异步任务完成时,片段会触发带有结果字符串的Toast消息。

我的问题是,如果用户在没有等待结果的情况下按下“返回”按钮,则应用会因onPostExecute方法而导致崩溃,而该方法会在片段中触发Toast + getString(R.string.whatever)已经分离,因为活动落后于onDestroy州。

我可以检查片段是否已分离或使用ProgressDialog,这是模态的,但我认为展示没有阻塞或任何其他怪癖的祝酒词会很好。有关如何实现它的任何建议?应用程序类中的广播接收器== overkill?

感谢。

UPD 日志:

  

01-24 12:01:29.626:E / AndroidRuntime(616):   java.lang.IllegalStateException:Fragment   HandsetSocialNetworksFragment {40612a78}未附加到活动01-24   12:01:29.626:E / AndroidRuntime(616):at   android.support.v4.app.Fragment.getResources(Fragment.java:571)01-24   12:01:29.626:E / AndroidRuntime(616):at   android.support.v4.app.Fragment.getString(Fragment.java:593)

1 个答案:

答案 0 :(得分:2)

在异步调用开始时,从片段中获取活动,并从中获取应用程序上下文。稍后使用它来获取所需的字符串。

或者,您可以在启动异步调用时获取所需的字符串,而不是在必须显示吐司时。