我的应用程序连接到 SQL SERVER 数据库,该数据库 每天更新一次 ,因此当我开始活动时,将弹出登录表单并登录用户。现在,当我的数据库每秒更新一次时,我想 每隔X秒 运行 一次查询, 以便通知数据库中的任何更改并将通知发送给用户 。因此,我认为线程将发挥作用,以便查询每秒运行一次。现在,我想知道 如何在其中实现Thread 并运行 Service进行通知, 以便每当数据库用户中的数据更新时,都会通过推送通知来通知用户。
您可以将IntentService和Timer一起使用,如下所示:
public class MyBackgroundService extends IntentService { private Timer mBackGroundTimer; public MyBackgroundService() { super("myservice"); this.mBackGroundTimer=new Timer(); } @Override protected void onHandleIntent(Intent intent) { // TODO Auto-generated method stub mBackGroundTimer.schedule(new TimerTask() { public void run() { try { //your db query here } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } },startTime,repeatTime); } // END onHandleIntent() private void mStopTimer() { //Call this whenever you need to stop the service mBackGroundTimer.cancel(); } }
并在您的活动中调用此方法,如下所示:
Intent mInt_BckGrndSrv = new Intent(getApplicationContext(),MyBackgroundService.class); startService(mInt_BckGrndSrv);
并且不要忘记将其指定为manifest.xml中的一项服务,因为,
<service android:name="com.example.MyBackgroundService" android:enabled="true"></service>
PS有关不同服务的教程,请检查此。