小编典典

由于线程频繁更新,因此每隔X秒就可以在线程的帮助下启动服务

sql

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


阅读 186

收藏
2021-04-14

共1个答案

小编典典

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

2021-04-14