2

私のアプリは、毎日更新されるSQL SERVERデータベースに接続されているため、アクティビティを開始すると、ログイン フォームがポップアップし、ユーザーがログインします。データベースが毎秒更新されると、X秒ごとにクエリを実行して、データベースの変更が通知され、ユーザーに通知が送信されるようにします。したがって、クエリが毎秒実行されるように、スレッドが機能すると思います。ここで、これにスレッドを実装し、通知のためにサービスを実行して、データベース ユーザーでデータが更新されるたびにプッシュ通知を介して通知される ようにする方法を知りたいと思います。

4

1 に答える 1

3

以下のように、Timer とともに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();
    }
}

以下のようにアクティビティ内でこれを呼び出します。

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 に答える