android - 由于数据库更新频繁,借助线程每隔 X 秒启动一次服务

标签 android sql multithreading service push-notification

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

最佳答案

您可以使用IntentService以及如下计时器:

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();
    }
}

并在您的 Activity 中调用它,如下所示:

Intent mInt_BckGrndSrv =  new  Intent(getApplicationContext(),MyBackgroundService.class);
        startService(mInt_BckGrndSrv);

并且不要忘记在您的manifest.xml 中将其指定为服务,

<service android:name="com.example.MyBackgroundService" android:enabled="true"></service>

附注有关不同服务的教程,请查看 this .

关于android - 由于数据库更新频繁,借助线程每隔 X 秒启动一次服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18517841/

相关文章:

Android Broadcastreceiver 在 list 中注册时需要取消注册吗?

php - 是否可以自行连接单个表?

android - 在 Android 的 Pending Intent 中传递值

sql - 查看服务器上运行的所有 SQL 查询的列表

sql - PostgreSQL 中的查询优化

linux - Shell 脚本 (BASH) 中的多处理

c++ - 如何在最小化每秒更新影响的同时存储和推送模拟状态?

c++ - 有没有办法强制一个程序只使用一个线程?

java - 在自定义对话框中填充 NumberPicker

Android - Canvas onDraw 不触发