2

モバイル用の AIR で目覚まし時計タイプのアプリケーションを作成しました。それが機能するためには、常に実行する必要があると思います。

基本的に、特定の時間かどうかを確認する必要があります (保存された値の確認 - 値は、ローカルの AIR SQLLite データベース、オンライン、ローカル ストレージ (AIR cookie) にある可能性があります。タイマーの完了など、これらの条件が満たされると、必要です。アプリケーションを起動します。

アプリを常に実行し続けるにはどうすればよいですか? または、やりたいことを行うためのより良い方法または別の方法はありますか? ヘッドレスモードはありますか?私が初心者のモバイル開発者であり、初心者の AIR 開発者であるとします。

注: アプリケーションを起動するとは、通知バッジやメッセージではなく、アプリケーションがフルスクリーンで起動することを意味します。ただし、最初のオプションが不可能な場合、[OK] をクリックしたときに、またはネイティブの方法が何であれ、アプリケーションを開くネイティブ アラート タイプのメッセージを表示することは可能ですか?

更新
Android では、アプリケーションをサービスとして実行する方法があるようです。たとえば、Google Cloud Messaging から通知またはメッセージが届くと、サービス クラスが実行され、リッスンしているすべてのハンドラーがメッセージを処理します。必要に応じてアプリケーションを起動できると思います。注: クライアント側であるため、GCM が必要かどうかはわかりません。インテントは、私がやろうとしていることかもしれません。:P

まだまだ大雑把ですが、分かり次第追記していきます。

これが AIR アプリにどのように関係するかはまだわかりません。おそらくネイティブ拡張によるものだと思います。

GCM 入門 - http://developer.android.com/guide/google/gcm/gs.html
GCM の概要 - https://support.google.com/googleplay/android-developer/support/bin/answer.py? hl=ja&answer=2663268

4

1 に答える 1

4

AFIK、Android では、デフォルトで最小化されている場合、アプリケーションはバックグラウンドで実行されます (真のマルチタスク)。Adobe AIR は、最小化するとデフォルトでフレームレートを自動的に 4fps に下げます。fps の低下は、目覚まし時計のタイマー イベントの遅延に影響を与える可能性があるため、アラームのトリガーをクライアントに依存している場合は、enter_frame ベースのタイマー サロゲートを使用することをお勧めします。注: サーバーにアラームをトリガーさせたり、アプリを最大化したりしたい場合は、アプリが最小化されているときにサーバーにクエリを実行することもできます。

iOS では、既定で最小化されているとアプリが実行されないため、話は別です。唯一の例外は、アプリがUIBackgroundModes(アプリ マニフェストで設定された) のいずれかを使用する場合です。4S が登場して以来 (bc of battery-gate )、App Store は、UI バックグラウンド モードを備えたアプリを許可する限り、非常に厳しくなっています。たとえば、 で送信しようとするとUIBackgroundModes=audio、目覚まし時計アプリがオフになり、音声が連続しなくなります (アラームが鳴ったときだけ聞こえます!)。そのため、iOS の場合、ローカル通知またはプッシュ通知のいずれかを使用する必要があります。

ローカル通知は、アプリを最小化する直前に、特定の遅延でクライアントによって設定されます (アプリの非アクティブ化はこれを行うのに適した場所です)。残念ながら、これまでに見た AIR-iOS のローカル通知 ANE (http://juankpro.com/wordpress/2012/06/17/using-the-local-notification-ane-on-ios) では、クライアント経由でアラーム効果音を設定しますが、アラームが鳴った時点から、デフォルトのローカル通知音を毎分繰り返すことができます。

これが少し役立つことを願っています。

于 2012-10-07T07:38:54.783 に答える