首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android后台服务

Android后台服务
EN

Stack Overflow用户
提问于 2012-02-28 07:04:17
回答 3查看 1.7K关注 0票数 0

我已经创建了一个and服务,我想使用android手机作为终端。手机必须时不时地在网络服务上检查消息。

有没有可能创建一个“后台任务”或服务,每隔一段时间检查一次特定的then服务?这不就是电子邮件的工作方式吗?应该是可能的。如果没有,我如何创建一个“推送”服务,到达android手机?

我已经创建了一个简单的服务,但它只运行几分钟,然后“停止”与服务器的对话。看起来这是在屏幕锁定时发生的。

我有一个扩展服务的类。我重写了下面的方法。

代码语言:javascript
复制
@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Service started", Toast.LENGTH_LONG).show();
    Log.d(_TAG, "onStart");
    timer.scheduleAtFixedRate( new TimerTask() {
        public void run() {
            Log.d(_TAG, "running task!! Hello :)");
            try {
                sendSMS();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }, 0, 60000);
}

就像一个护身符,直到显示器被锁定。

这款手机是HTC Desire S

我是android开发的新手,也不知道它的框架。

致敬..

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-28 07:11:28

首先,您需要决定是将数据推送到设备还是从设备中拉出数据。根据您的决策,实现会发生变化。

你可以创建后台服务,它会每隔x分钟轮询一次,并拉取你的数据。

请尝试这篇博客文章http://www.zubha-labs.com/android-services-101-part-1,了解更多关于服务的信息,以及实际执行的源代码。

使用android C2DM http://code.google.com/android/c2dm/从您的服务器推送它。

票数 1
EN

Stack Overflow用户

发布于 2012-02-28 07:27:54

正如其他发帖者指出的那样,你的应用程序通过基于推送的方法接收意图会更理想,这样你就不会浪费资源不断轮询。

但是,如果您需要以指定的时间间隔轮询和/或执行某些代码,那么Alarm Manager就是您想要的。您可以注册您的应用程序,以便在特定的时间点被调用,然后启动您的服务来轮询数据。

http://developer.android.com/reference/android/app/AlarmManager.html

票数 2
EN

Stack Overflow用户

发布于 2012-02-28 07:11:54

创建一个后台Service是完全可能的。

但是,如果该服务的主要目的是定期检查服务器上的新消息,那么使用推送服务会更好地延长电池寿命。谷歌有一个名为C2DM的软件,目前是免费的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9473791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档