在APP中定义一个时间(假设为5分钟),记录两次操作APP之间的时间间隔,如果大于之前定义的时间,则APP端实现发出命令,手机屏幕熄灭。该功能要如何实现?
PHP中文网2017-04-18 10:55:12
最初のポイントはロック画面機能です。 https://github.com/chniccs/Lo... を参照してください。
この小さなプロジェクトは、少量のコードでロック画面機能を実装します。
もう 1 つのポイントは、各操作をどのように定義するかを確認することです。ここでは、アクティビティが操作として前面に表示され、一部のタッチ操作を操作として定義することもできます。
1. BaseActivity を作成し、onResume で遅延メッセージ (ブロードキャストまたはその他のハンドラー) を送信し (これは操作を表すためにここで使用されます)、現在の時刻を記録します (カスタム アプリケーション、グローバル シングルトン、または永続ストレージに保存されます)
2. ブロードキャストなどの遅延メッセージを送信する以前の方法に従って、ブロードキャスト メッセージを受信した後、現在の時刻値と手順 1 で記録した時刻値を比較します。定義された時刻値より小さい場合は、再度取得します。 2 つの時間値 (保存された時間と現在の時間) の差は、ブロードキャストを送信する前の遅延として使用されます。次回ブロードキャストを受信したときに再度判定され、時間値以上であればロック画面が呼び出されます。
説明: 固定遅延ブロードキャストを再送信する代わりに、ステップ 2 で差分値を取得する必要があるのはなぜですか? これは、初めてブロードキャストを送信した後、後続の操作となるいくつかの操作を実行する可能性があるためです。つまり、遅延ブロードキャストを受信した場合、最後の操作の時間は、ブロードキャストの送信時に記録された時間ではなく、実際の最後の操作の時間になります。したがって、記録された時間値は、操作のたびに更新する必要があります。
差の計算: 定義された固定最大操作なし時間 - (現在時間 - 最後の操作時間)
ringa_lee2017-04-18 10:55:12
HandlerのpostDelayed(Runnable, long)メソッドを採用する
1. Handlerクラスを定義する
2. タイマーを開始します
リーリー3.タイマーを停止します
リーリーそれはおそらくその数字です、それは自分で決める時です