【问题标题】:Fetching data from the network during onCreate -> onHandleIntent在 onCreate -> onHandleIntent 期间从网络获取数据
【发布时间】:2017-03-12 13:50:48
【问题描述】:

我有一个onCreate,它将调用onHandleIntent

onHandleIntent 中,我想从远程服务器获取一些东西并将值从onHandleIntent 返回到onCreate

这可能吗?

【问题讨论】:

  • 你问的是Activity吗?

标签: android networking android-lifecycle oncreate


【解决方案1】:

由于不清楚您要问什么 - 我假设它是关于 Activity,在这种情况下,

你不应该这样做!

来自official Android training materials

为避免创建无响应的 UI,不要在 UI 线程上执行网络操作。默认情况下,Android 3.0(API 级别 11)及更高版本要求您在主 UI 线程以外的线程上执行网络操作;如果不这样做,则会抛出 NetworkOnMainThreadException

您的问题涉及在 UI 线程上运行网络操作,这几乎肯定会导致您的应用崩溃。

还有其他方法可以获得这种效果,包括异步调用、占位符(在图像的情况下)、使用本地数据库(+预加载)等等。还有一些库可以帮助您执行此操作(例如,Picasso 用于图像)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2012-11-24
    • 2021-01-06
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多