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