如何保持每 5 秒请求一次页面而不耗尽电池电量?

2024-03-22

我正在开发的 Android 应用程序需要每 5 秒在我的服务器上请求一个页面,但我担心这会消耗大量电池,有没有更简单的方法?我当前的方法是每 5 秒循环一次的服务:

protected void onHandleIntent(Intent intent) {
      while (true){

          long endTime = System.currentTimeMillis() + 5*1000;
          while (System.currentTimeMillis() < endTime) {
              synchronized (this) {
                  try {
                      wait(endTime - System.currentTimeMillis());


                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://www.***.***/***/request_sms.php");
                    String HTML = "";
                    try {
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                        nameValuePairs.add(new BasicNameValuePair("id", "1"));
                        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                        HttpResponse response = httpclient.execute(httppost);
                        HTML = EntityUtils.toString(response.getEntity());
                    } catch (ClientProtocolException e) {} catch (IOException e) {} 


                        if(HTML.indexOf("[NO TEXTS]") > 0) {
                        } else {
                            Vector<String> all_sms = getBetweenAll(HTML, "<sms>", "<sms>");
                            for(int i = 0, size = all_sms.size(); i < size; i++) {
                                String from = getBetween(all_sms.get(i), "<from>", "</from>");
                                String to = getBetween(all_sms.get(i), "<to>", "</to>");
                                String msg = getBetween(all_sms.get(i), "<msg>", "</msg>");
                                String sent = getBetween(all_sms.get(i), "<sent>", "</sent>");
                                String HTML1 = "";
                                HttpClient httpclient1 = new DefaultHttpClient();
                                HttpPost httppost1 = new HttpPost("http://www.***.***/***/add_sms.php");
                                try {
                                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                                    nameValuePairs.add(new BasicNameValuePair("from", from));
                                    nameValuePairs.add(new BasicNameValuePair("to", to));
                                    nameValuePairs.add(new BasicNameValuePair("msg", msg));
                                    nameValuePairs.add(new BasicNameValuePair("sent", sent));
                                    httppost1.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                                    HttpResponse response1 = httpclient1.execute(httppost1);
                                    HTML1 = EntityUtils.toString(response1.getEntity());
                                    HN.post(new DisplayToast(HTML1)); 
                                } catch (ClientProtocolException e) {} catch (IOException e) {} 

                            }
                        }


                      } catch (Exception e) {
                  }
              }
          }

        }


  }

是否有理由需要每 5 秒检查一次?您最好让服务器向设备推送通知(通过 c2dm),告知何时有可用更新。如果您不断轮询服务器,无论您如何实现,您都会耗尽电池。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保持每 5 秒请求一次页面而不耗尽电池电量? 的相关文章

  • GCM 通知的自定义 UI

    In GCM Docs http developer android com google gcm gcm html其给定 它不提供任何内置用户界面或其他处理 消息数据 GCM 只是将收到的原始消息数据直接传递给 Android 应用程序
  • Android,无法从谷歌API获取天气

    以下代码之前运行良好 class RetreiveWeatherTask extends AsyncTask
  • 如何在发布版本中使用 Zebra EMDK?

    所以我有一台 Zebra MC330M 设备 我之前创建了一个应用程序 我想使用 PDA 内置的条形码扫描仪 如果在调试模式下运行我的应用程序 一切正常 我可以读取条形码 但是如果我创建暂存或释放版本 apk 则条形码读取器不活动 因此如果
  • 使用 ArrayAdapter 的 ListView 中的按钮

    我有一个使用 POJO 类填充的 ArrayAdapter 列表视图由 2 个布局组成 1 代表菜单项 1 代表类别 带分隔符的列表视图很好 后来我尝试在每个菜单项行中添加一个按钮来编辑其中的详细信息 当我尝试获取单击按钮的行的位置时 我遇
  • 要在进程中运行 dex,Gradle 守护进程需要更大的堆。目前有 910 MB

    实际上主要错误是 java exe完成非零退出值 1 首先我告诉你安装 studio 后遇到的每个问题 三天前 我刚刚安装了 android studio 并创建了新项目 1 首先它抛出错误 插件太旧 请更新到更新的版本 在谷歌上搜索后我改
  • Droid 3 上的列表视图背景为灰色

    我有一个带有自定义背景的列表框 它在黑色背景的两侧显示一条细白线 在我所有的测试手机 Galaxy Captivate Vibrant Nexus 1 G Tablet Archos 32 Droid 上运行良好 我刚买了一台 Droid
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • 适用于 Droid 手机的数学或 LaTeX 引擎 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Android 手机有可用的数学或 LaTeX 引擎吗 我最喜欢的抽认卡应用程序 AnyMemo 似乎
  • 对过期会话进行休息调用:HTTP 401 响应导致浏览器显示登录窗口

    我编写了一个 HTML 5 应用程序 它使用 AngularJS 并与在 Tomcat 上运行的 Java REST 后端进行交互 我使用 Spring Security 来处理登录和安全性 当用户进入网站时 他将被转发到登录页面 该页面创
  • C# - 如何进行 HTTP 调用

    我想对网站进行 HTTP 调用 我只需要点击 URL 不想上传或下载任何数据 最简单 最快的方法是什么 我尝试了下面的代码 但它很慢 并且在第二次重复请求后 它只是超时 59 秒 然后恢复 WebRequest webRequest Web
  • 如何设置上拉刷新SwipeRefreshLayout

    我看到很多 ListView 下拉刷新的库 但是当从上到下拉动时它们是工作的 但是从下到上拉动时我如何刷新 我可以用这个做吗滑动刷新布局 http developer android com reference android suppor
  • 如何在android中的应用程序小部件中找到哪个按钮被点击?

    我想设计一个简单的应用程序小部件 它有两个文本视图和两个用于上一个 下一个的按钮 我很难处理应用程序小部件中的按钮单击 实际上我的愿望是 如果用户单击上一个按钮 我想显示以前的值 如果用户单击下一个按钮 我想显示数据库中的下一个值 如何知道
  • EditText 不显示当前输入(Android 4)

    我的 Android 应用程序包含一个EditText http developer android com reference android widget EditText html查看可以在其中键入一些短消息 单行 按键盘的DONE键
  • SDK 管理器中缺少 Google Play 服务

    我想在我的应用程序中使用 Google 地图 我想在 SDK 管理器中安装 Google Play 服务 但是当我转到 SDK 管理器时 我没有看到 Google Play 服务 为什么 我该如何安装这个 我可以独立于 SDK Manage
  • Android Youtube API 可用吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有适用于 Android 的 YouTube API 吗 如果不是 除了通过网络浏览器之外 如何从 Yo
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • Android EditText 不起作用,android:imeOptions="actionNext" android:inputType="phone"

    我已经尝试过了 只有删除android inputType phone 键盘回车可以跳转到下一个EditText 不知道大家之间是否有过一些冲突android imeOptions actionNext and android inputT
  • Android 可扩展 GridView 就像 Google 图像一样

    我想创建可扩展的 GridView 其行为类似于 Google 图像页面 我想知道如何实现这样的功能 当我单击其中一张图像时 页面会展开并显示图片的详细信息 Android 中是否可以做类似的事情 Images grid Expanded
  • 更改 Android 中突出显示文本的颜色

    我不确定这是否可能 也许有人可以纠正我 我在 Android 应用程序中有一个 EditText 视图 该视图在蓝色背景上有白色文本 当选择文本时 通过长按和编辑对话框 我希望突出显示为白色并将文本颜色更改为黑色 令人烦恼的是 似乎没有办法

随机推荐

  • 无法启动动物园管理员

    我正在使用合流平台 zookeeper 处于活动状态查找状态 但是当我尝试用 confluence 启动 kafka 时 它显示 Zookeeper 已关闭 sudo service zookeeper status Redirecting
  • Phonegap、Cordova 观察位置每 1 秒成功发射一次

    平台 iOS6 OSx Lion 我试图弄清楚 Phonegap Cordova 的工作方式navigator geolocation watchPosition 文档说该选项 maximumAge 是要求系统检索位置的一个 因此 有了这些
  • 将 DataTable 转换为 IEnumerable

    我正在尝试将 DataTable 转换为 IEnumerable 其中 T 是我创建的自定义类型 我知道我可以通过创建一个List
  • ERR_TOO_MANY_REDIRECTS:我的代码是否被锁定在循环中?

    我正在尝试完成 Tableau js API 教程 当我尝试将在线示例与我发布到服务器的图表一起使用时 我立即遇到了 ERR TOO MANY REDIRECTS 错误 我对这项工作还很陌生 所以我想我应该提供相关的片段 看看您是否可以发现
  • 如何恢复电子应用程序中的默认窗口大小?

    有没有办法将电子应用程序中的主窗口恢复到一定大小 为了解释我想要实现的目标 让我举个例子 当我打开 Windows 资源管理器时 它会以特定大小并在特定位置打开 然后我最大化该窗口并关闭资源管理器 下次当我重新启动资源管理器时 它会以与关闭
  • 查找数组中的总和等于零

    给定一个整数数组 找到一组至少有一个总和为 0 的整数 例如 给定 1 8 6 7 2 1 2 5 算法可以输出 1 6 2 2 5 因为这是输入数组的子集 其总和为 0 该解决方案必须在多项式时间内运行 您将很难在多项式时间内完成此任务
  • ActiveX 控件是否被禁用?

    我的 Excel 工作表使用 ActiveX 复选框来控制某些活动 今天他们开始报错 一位运行更高版本 Excel 的同事向我发出了警报 但它仍然可以在我的计算机上运行 我注意到有 Windows 更新 所以我进行了更新 现在它不再在我的计
  • std::vector 到带有自定义分隔符的字符串

    我想复制a的内容vector到一长string带有自定义分隔符 到目前为止 我已经尝试过 h string getLabeledPointsString const string delimiter cpp string Gesture g
  • 数据表到嵌套列表

    我想转换 library data table n lt 12 DT lt data table level1 rep paste0 Manu 1 2 each n 2 level2 rep paste0 Dept 1 4 each n 4
  • 验证 Tensorflow 流中是否存在该文件。使用 tf.gfile.Exists 以字符串张量作为输入

    使用 Tensorflow 我试图在读取文件之前验证文件是否存在tf read file filename 不幸的是 按照我的管道的设置方式 我正在使用以下命令动态生成文件名字符串tf命令 我使用生成文件名字符串tf string join
  • 跟踪 XWindow 协议

    是否可以使用工具跟踪 XWindow 协议 我认为wireshark将是一个很好的框架来承载这样的想法 但似乎没有支持 为了实现这个目标应该做什么 Wiresharkdoes具有剖析X Window协议的能力 但是 您首先必须能够捕获 X
  • 用于多个 Maven 模块项目的 proguard

    我在多模块 Maven 项目中有一个对 proguard 的插件引用 我的项目的功能已经过全面测试并且可以工作 直到我添加 proguard 我的项目的结构 parent pom module a pom module b pom test
  • Maven - 添加集成测试

    尝试将 Maven 构建中的测试拆分为单元测试和集成测试 我正在使用故障安全插件来运行集成测试 并尝试使用 build helper maven plugin 从 src it java 目录添加集成测试 当我尝试进行构建时出现错误 但我看
  • 复制Mysql数据库的数据库结构

    我正在使用 MySql 5 1 数据库 我创建了一个项目数据库 模板数据库 并希望每次用户创建新项目时从应用程序创建同一数据库的副本 如何复制并创建相同结构的新数据库 这样做的命令是什么 如果您只想将表结构等从一个数据库复制到另一个数据库
  • WooCommerce 中的多个订单

    我想在类别页面中按平均评分 DESC 然后按价格 ASC 订购产品 id avgrating price 1 4 10 2 4 5 3 5 7 顺序 3 2 1 所以我尝试了 args meta key wc average rating
  • Flex:跨分辨率应用

    What is the best way to create applications in Flex AIR which look and feel the same irrespective of the screen resoluti
  • Django 接受一个整数到 CharField 中

    我正在学习 django 并创建了一个Page form class像这样 from django import forms class Page forms Form title forms CharField max length 20
  • 如何让我自己的 JavaScript 函数具有必需的参数?

    当我在intellij idea中编写javascript时 我可以检查我正在调用的函数的参数 它会显示类似的内容 我不确定这是否是一个 intellij 功能 它了解标准库 或者它是否是一个 javascript 功能 可以让您将参数标记
  • FabricJS 触摸平移/缩放整个画布

    我需要在 FabricJS 画布上启用触摸缩放 平移 有些库允许在图像上执行此行为 请参阅捏缩放画布 https github com vash15 pinch zoom canvas 或通过鼠标单击事件 参见这个小提琴 http jsfi
  • 如何保持每 5 秒请求一次页面而不耗尽电池电量?

    我正在开发的 Android 应用程序需要每 5 秒在我的服务器上请求一个页面 但我担心这会消耗大量电池 有没有更简单的方法 我当前的方法是每 5 秒循环一次的服务 protected void onHandleIntent Intent