2

モバイルウェブアプリ用のシンプルなJavaScriptベースのタイマーを作成しました。例として:

var a = 0;
setInterval(function() {
    console.log('a', a);
    a++;
}, 1000);

これは、モバイルSafariとAndroidブラウザの両方で問題なく動作します。毎秒コンソールにログを記録し、それに応じて値をインクリメントします。(さて、Androidブラウザはconsole.logをサポートしていませんが、サポートしていると仮定しましょう。)

問題:画面がタイムアウトした場合(つまり、ユーザーがページの操作を停止した場合)、setInterval関数は一時停止します。ユーザーが画面を再びオンにすると再開します。実行を続けるにはタイマーが必要なので、これはうまくいきません。

質問:画面がタイムアウトしたときにsetInterval関数が一時停止しないようにする方法はありますか?そうでない場合、画面がタイムアウトするのを防ぐことはできますか?他の選択肢はありますか?

前もって感謝します!

4

2 に答える 2

5

基本的に、いいえ。画面がタイムアウトすると、電話はバッテリーを節約するためにスリープ状態になります。とにかく何も見えないので、多数の処理タスクが停止します。タブ/ウィンドウを変更すると、同様のことが起こります (ページがメモリからアンロードされます)。現在、Web アプリケーションからデバイスをオンのままにするように要求する方法はありません。ハードウェアにアクセスするための Android の将来のサポートにより、この機能が提供される可能性がありますが、個人的には疑わしいと思います。

常にサポートを実行する必要がある場合は、両方のシステム用のネイティブ アプリケーションを作成する必要があります (さらに、Android では常に実行できます)。

于 2010-05-27T05:31:34.307 に答える