1

Android アプリケーションであるロケーション ベースのアラームを開発しています。

すべてのコーディング部分が完了しました。

ただし、アプリケーションを閉じると、アラーム警告ダイアログが表示されません。

ユーザーが別のアプリケーションを使用している場合やホーム画面にいる場合でも、アラームをポップアップ表示しようとしています。

現時点での私のアラームのコードを以下に示します。

final MediaPlayer mp = MediaPlayer.create(LocAlarmProject.this, R.raw.airtel); 

mp.start();         

// LocAlarmProject.this below is what's causing the problem:
final AlertDialog.Builder builder=new AlertDialog.Builder(LocAlarmProject.this);

builder.setTitle(disp_title);

builder.setMessage(disp_desc);

builder.setIcon(R.drawable.alarm);

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {                        

     mp.stop();

}

 });

 builder.show();
4

3 に答える 3

1

通知サービスを使用して、ステータスを追跡します.....訪問...... http://developer.android.com/guide/topics/ui/notifiers/notifications.html

于 2013-05-10T08:16:22.187 に答える
1

あなたがサービスを探していると確信しています

コピーして貼り付け:

Service は、ユーザーと対話せずに実行時間の長い操作を実行したい、または他のアプリケーションが使用する機能を提供したいというアプリケーションの要求を表すアプリケーション コンポーネントです。各サービス クラスには、そのパッケージの AndroidManifest.xml に対応する宣言が必要です。サービスは Context.startService() と Context.bindService() で開始できます。

于 2012-05-18T20:04:33.117 に答える
0

これを行う適切な方法には、いくつかの手順が必要です。申し訳ありませんが、以前に行ったことがない場合は簡単ではありません。

まず、Android のビルトインを使用しAlarmManagerて、アプリをアクティブにする時間をスケジュールします。起床時刻とPendingIntent.

PendingIntent次に、アラームを表示する時間のためにアプリをアクティブ化するために使用される を作成します。

第 3 に、この Intent はいくつかの方法で処理できます。最も一般的な方法はBroadcastReceiver、Intent を受け取るように拡張するクラスを作成することです。このクラスは、アラームを表示する時間になると通知されます。作成して PendingIntent 内に配置した Intent は、そのonReceive()メソッドに渡されます。この情報をアプリに渡して、アラート ダイアログを表示します。--- または、代わりにインテントを受け取るようにメイン アプリを登録してからonNewIntent(Intent)、アクティビティでメソッドをオーバーライドすることもできます。

4、ファイルに登録BroadcastReceiverAndroidManifest.xmlます。これは、作成したインテントをリッスンするためにこのレシーバーを登録する場所でもあります。タグを使用してこれを行い<intent-filter>ます。

5. (オプション) 電話がスリープ中でもアラームを表示したい場合、およびユーザーがアラームを確認する前にスリープ状態に戻らないようにしたい場合は、WAKE_LOCK を取得して実行する必要があります。それで。

これが Service を使用するよりも望ましい理由は、アラームを待つためだけにリソースを消費しないことと、Android がアプリを強制終了してメモリを解放することを決定した場合でも機能することです。幸運と幸せなコーディング!

于 2012-05-18T20:40:38.823 に答える