0

Androidで1つのアプリケーションを開発しています。私のアプリケーションには 1 つのサービスがあります。私のサービスは常にバックグラウンドで実行されています。私のバックグラウンド サービスは、ユーザーが定義したリージョンを監視し続けます。

ユーザーが範囲外に出ると、アプリケーションはユーザーに警告を発します。今私の問題は以下です:

  1. アプリケーションが閉じている、つまり実行されていない場合、アプリケーションはアラートを受け取ります。
  2. アプリケーションが実行されているときに、アラートが発生する場合とそうでない場合があります。

以下は、ユーザーが範囲外に出たときにアラートをロードするコード、つまりアクティビティです。

//SecuRemote.LOG("current activity context" + SecuRemote.currentActivityContext);
Intent i = new Intent(context, ShowAlertDialog.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
i.putExtra("Msg",msg);
if(status){
    i.putExtra("status","true");
    if(devName != null)
        i.putExtra("devName",devName);
} else
    i.putExtra("status","false");
    SecuRemote.LOG("start activity showAlertDialog" + context);
    context.startActivity(i);

良い反応を探しています... よろしく、

4

1 に答える 1

0

問題はプログラミングロジックにある可能性があります -

  1. おそらくserviceフラグを確認する必要があるisInsideため、ユーザーがアプリケーションに入るまでに、このフラグはトグルされ、目的に役立つと思われるものは何でもフラグをトグルする必要がありisInside=trueますonPause or on onDestroy

// サービス部品とダイアログの表示

フラグをチェックするので、serviceチェックするとすぐにisInside=false上記のコードを使用してアラートが発生します....上記のアクティビティ(アラートアクティビティ)をダイアログとして表示することをお勧めしますそのアクティビティのテーマ属性をダイアログとして ....

android:theme="@android:style/Theme.Dialog"

お役に立てば幸いです。

于 2013-05-15T05:23:49.410 に答える