我已经创建了一个and服务,我想使用android手机作为终端。手机必须时不时地在网络服务上检查消息。
有没有可能创建一个“后台任务”或服务,每隔一段时间检查一次特定的then服务?这不就是电子邮件的工作方式吗?应该是可能的。如果没有,我如何创建一个“推送”服务,到达android手机?
我已经创建了一个简单的服务,但它只运行几分钟,然后“停止”与服务器的对话。看起来这是在屏幕锁定时发生的。
我有一个扩展服务的类。我重写了下面的方法。
@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开发的新手,也不知道它的框架。
致敬..
发布于 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/从您的服务器推送它。
发布于 2012-02-28 07:27:54
正如其他发帖者指出的那样,你的应用程序通过基于推送的方法接收意图会更理想,这样你就不会浪费资源不断轮询。
但是,如果您需要以指定的时间间隔轮询和/或执行某些代码,那么Alarm Manager就是您想要的。您可以注册您的应用程序,以便在特定的时间点被调用,然后启动您的服务来轮询数据。
http://developer.android.com/reference/android/app/AlarmManager.html
发布于 2012-02-28 07:11:54
创建一个后台Service是完全可能的。
但是,如果该服务的主要目的是定期检查服务器上的新消息,那么使用推送服务会更好地延长电池寿命。谷歌有一个名为C2DM的软件,目前是免费的。
https://stackoverflow.com/questions/9473791
复制相似问题