2017-01-17 25 views
0

私のコードロジックには30分の有効期限があります。現在の時刻が有効化された時間+ 30分に等しい場合、有効化は失効します。 SQLiteの内部では、IsActiveフラグ= 0を更新する必要があります。アプリケーションデータベースをサイレントモードで更新するにはどうすればよいですか?

どのようにアプリケーションデータベースをサイレントモードで更新しますか?

+0

それぞれのOSでバックグラウンドサービスを行う必要があります。 –

+0

それはイベントですか? – goofyui

+0

期限切れ条件はいつチェックされますか?打ち上げ時、再開時、またはどこか別の場所で?あなたがチェックし、条件がヒットした場合は、SQLクエリを起動し、必要に応じてフラグを設定します。何が問題なのですか? –

答えて

1

フラグを更新する必要はありません。あなたのデータベースには日付フィールドが必要です。

YourEntity.ActivationDate = DateTime.Now; 
// save your entity 

後に::

var entity = // get the entity from database 
var isActivated = DateTime.Now < entity.ActivationDate.AddMinutes(30); 

活性化のためにチェックする非常に同じコードがフラグを更新することができます:

var entity = // get the entity from database 
if(entity.IsActive && DateTime.Now > entity.ActivationDate.AddMinutes(30)) 
{ 
    entity.IsActive = false; 
    // save entity to db table 
} 
あなたが sqlite-net-pclまたは類似のようなORMを使用していると仮定すると、

このようにして、バックグラウンドサービスの実装を避けることができます。

+0

私は、date.now> =起動日時という言葉と同じ論理を実装しました。とてもうまくいきます。ありがとう – goofyui

関連する問題