0

ブロードキャストレシーバーから呼び出しているアクティビティで問題が発生しています。

私のアプリケーションには警報システムが含まれているので、警報が一致すると、その時点で、放送受信機は1つのアクティビティを呼び出して前に出ます。このアクティビティは全画面表示ではなく、RegionSearchDialogをテーマとして使用するアラートボックスの一種です。(混乱しないでください。私はアクティビティのみを使用しています。クラスはアクティビティを拡張しますが、xmlのテーマはRegionSearchDialogとして設定されています)

私の開発プラットフォームは次のとおりです。4.0.4

今私の問題は:私のデバイスがオンになっている(keyguradのロックを解除する)場合、アプリケーションが前面または背面にある場合、それは正常に動作します。ただし、電源がオフの場合(スリープモード/デバイスがロックされている場合)、同じアクティビティが呼び出されます。デバイスがスリープモードの場合、onCreate()が最初にonResume()を呼び出し、次にonPause()を呼び出します。

私はその活動を続けたい、それを眠らせたくない。

したがって、目覚まし時間が一致すると、目覚ましが鳴り、スリープモードの場合、ユーザーはデバイスのロックを解除して、その目覚ましのポップアップを見ることができます。

その中で私を助けてくれてありがとう。

4

3 に答える 3

1

これは、Android のアクティビティが動作するはずの方法です。Service を使用するか、Alarm Managerを使用して、特定の時間にアクティビティを起動することをお勧めします。これは、実行しようとしていることに適しているためです =)。

于 2012-07-27T13:03:52.357 に答える
0

ここに私のコードがあります、私はそれがあなたを助けることができると思います:

 super.onCreate(savedInstanceState);
  final Window win = getWindow();
  win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
  | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
  win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
  | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
  setContentView(R.layout.main); 

メインのxmlは次のとおりです。

<activity
android:name=".main"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Wallpaper.NoTitleBar"

android:launchMode="singleInstance" 
android:excludeFromRecents="true"
android:taskAffinity=""
android:configChanges="orientation|keyboardHidden|keyboard|navigation" />

プロジェクトでこれらのコードをテストしてください。:)

于 2012-07-27T13:11:30.413 に答える
-1

「enjoy-writing」による応答に加えて:

  1. 私のAndroidアプリでは、onCreateコードで説明されているようにフラグを設定するだけで十分でした.
  2. その結果、アプリはスリープ モードに入るときに一時停止し (たとえば、電話のオン/オフ ボタンを押すことによって)、スリープ モードから戻るときに再開されました。
  3. FLAG_KEEP_SCREEN_ON フラグを削除すると、ビューがしばらく使用されていない場合でも電話をスリープ状態にすることができます。
于 2013-06-12T13:00:08.413 に答える