【问题标题】:Toast from destroyed activity/fragment, getString issue来自被破坏的活动/片段的吐司,getString 问题
【发布时间】:2013-01-24 17:23:08
【问题描述】:

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

我的问题是,如果用户在没有等待结果的情况下按下后退按钮,则应用程序由于 onPostExecute 方法而崩溃,这反过来又会在已分离的片段中触发 Toast + getString(R.string.whatever),因为活动落后于onDestroy 状态。

我可以检查片段是否已分离或使用ProgressDialog,这是模态的,但我认为在没有阻塞或任何其他怪癖的情况下显示敬酒会很好。关于如何实现它的任何建议?应用程序中的广播接收器 class== 矫枉过正?

谢谢。

UPD 日志:

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

【问题讨论】:

    标签: android android-fragments android-ui


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2018-10-04
      相关资源
      最近更新 更多