我创建一个news-like app
,我想知道是否可以启动应用程序(例如:每1小时1次)来检查新数据是否可用。我想,你知道我在说什么。应用程序应该从不知情的地方开始,检查并finish()
。
这可能吗?我知道widgets
可以做到但正常活动或类似的东西?
请帮忙。 达米安。
答案 0 :(得分:1)
是的,可以在android中使用“警报服务”,并使用它以特定的时间间隔执行某些工作。
以下是警报服务文档的链接: http://developer.android.com/reference/android/app/AlarmManager.html
以下是使用警报服务的示例代码
/**
* Method to start background service for server refresh and other tasks.
*/
public void startMyService()
{
//Start Service service to handle data refresh
Intent serviceIntent = new Intent(this, MyCommunicationService.class);
//Schedule additional service calls using alarm manager.
AlarmManager alarmManager = (AlarmManager) this.getSystemService(ALARM_SERVICE);
PendingIntent pi = PendingIntent.getService(this, 0, serviceIntent, 0);
//Retrieve time interval from settings (a good practice to let users set the interval).
MyPreferenceManager prefManager = new MyPreferenceManager(this);
alarmManager.cancel(pi);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), prefManager.getDataRefreshTime()*1000 , pi);
}
请注意,我们乘以1000,因为setRepeating()方法的参数以毫秒为单位。