2

我的应用程序与每天更新的SQL SERVER数据库连接,所以当我开始我的活动时,会弹出登录表单并且用户已登录。现在,随着我的数据库随时更新,我想每隔 X 秒运行一次查询,以便通知数据库中的任何更改并向用户发送通知。所以,我认为线程将发挥作用,以便查询每秒运行一次。现在,我想知道如何在其中实现 Thread并运行Service 以进行通知,以便每当数据库中的数据更新时,都会通过推送通知通知用户。

4

1 回答 1

3

您可以将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 有关不同服务的教程,请查看

于 2013-08-29T18:18:13.370 回答