- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
两年前,出现了 fragment 、 Intent 服务、游标加载器。该方法是否仍然是最新的,或者是否有任何更好或更成熟的模式来设计 android rest 客户端,特别是与选项 B 相比(我没有发布图像的特权,而是可以从 this post 找到图像) .
I know the content provider part is essential. what about the service helper and service component? Up till now, the startService method is a nature of Context or its subclasses. which means the service helper would be an activity. So is it elegant to initiate an activity from a content provider, or should it be initiate from the activity on the top.
There comes service, intent service, asyncTask and thread. In my opinion, the intent service is suitable for sync of mega pack of data from remote server. That why they use it in the iosched. But the common scenario is that only a part of items will be synchronized with the remote server. So the intent service is too heavy. even the service approach. could we just use the asyncTask or thread in the content provider or some component of that to accomplish this kind of task. Or is there any convincing reason to use the service, and go through the service helper-service-processor path. I am talking about a serious application.
那你怎么看?
最佳答案
So is it elegant to initiate an activity from a content provider, or should it be initiate from the activity on the top.
您永远不会从内容提供者那里发起 Activity 。一切都应该从您的 Activity 开始,无论是 AsyncTask、Service 还是 Content Provider 请求...
AsyncTasks 通常是一个糟糕的选择。在处理配置更改(即屏幕方向更改)时,它们只是有缺陷。 Loaders 是解决这个问题的方法,但困难的部分是将它与你的网络调用包装在一起。一种解决方案是从自定义加载器(子类化 AsyncTaskLoader)构建网络调用。
但是,就我而言,我遵循了 2010 年 Google IO 演示文稿。构建了一个类 ServiceHelper,用于管理对 Service 对象中的服务器的请求(它启动线程以执行网络查询)。 ServiceHelper 管理可以从调用 Activity 创建的 ResultReceivers。这允许 Activity 监听来自服务请求的事件,例如查询何时开始和结束(或何时出错)。这些线程将调用它们的网络查询,然后将结果数据存储在 ContentProvider 中(用于缓存并在必要时跨多个 Activity 使用)。
同时,我在 Activity 上有一个 CursorLoader,它监听网络线程将写入的端点。显然有很多中间立场需要你自己去解决……比如你的缓存策略和这种实现的开销。但这实际上取决于您正在构建的应用程序以及您要集成的 API。
所以是的,我认为 2010 年的演讲仍然有效。他的演讲中有很多模糊的地方,今天还在继续。您仍然需要设计适合您的应用的设计
希望我的想法能帮助您入门..
关于android - google io 2010 中的其余客户端应用程序设计方法是否仍然是最新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394445/
如何有效地设计一个C++模块化程序?如何学习? 最佳答案 对于初学者,您可能希望采取“暴力”过程: 1. 在一个文件中写一个简单的main函数。 2. 增加一些功能,先编译再测试。 3.重构(在谷歌中
前言 有人说现在记事类app这么多,市场这么卷,为什么还想做一个笔记类App? 一来,去年小孩刚出生,需要一个可以记录喂奶时间的app,发现市面上没有一款app能够在两步内简单记录一个时间,可能i
我正处于 Web 应用程序的设计阶段,该应用程序允许用户创建工作请求,并且工作人员可以针对这些请求投入时间。该应用程序还将为主管提供报告功能,以获取每日总计、报告,并说明花费的时间、“成本分配”。 我
前言:很多刚刚接触编程的人都不知道怎么下手编写程序,特别是学习了新的知识点,不知道有什么用,那么本文将以简单的存储结构及简单的运算,条件语句,分支语句,循环语句结合,带来一个双人对战版五子棋,这是一
我正在尝试通过 C++ 多线程解决网络流量问题。 给定一个网络(所有节点都由弧连接,每个弧连接2个且只有2个结束节点,一个是输入节点,另一个是输出节点,每个节点可以有多个输入弧和输出弧),每个节点需要
我有一个关于编程和文件的问题。 while(current!=NULL) { if(current->Id_Doctor!='\0') { current=current->next;
下面的‘C’语句执行什么操作? star = star ^ 0b00100100; (A) 切换变星的第 2 位和第 5 位。 (B) 清除变量星的第 2 位和第 5 位以外的所有位。 (C) 设置除
我写了下面的代码: #include int main() { int a, b; printf("Enter values of a and b\n"); scanf(" %d%d "
我正在将 C 代码编程到 PIC 板上。我的问题是如何让我的程序计算按下按钮(RB0)的时间。然后它会显示所花费的时间并将其显示在液晶显示屏上。以毫秒为单位计算。下面是到目前为止我的代码。 /
我是一名优秀的程序员,十分优秀!