私のアプリでは、アプリケーションのどこからでもダイアログを表示することができます。セカンダリスレッドからでもダイアログを表示できます。私は、ユーザーの目の前にダイアログを表示します(ダイアログは、アプリケーションコンテキストから開いた透明なアクティビティで表示されます)。私の問題は、アプリがバックグラウンドでサーバからの信号を受信すると、ダイアログを含む透過的なアクティビティを開始するので、アプリケーションはフォアグラウンドになります。これはアンドロイド(および私)のルールに反するものです。Android:アクティビティがバックグラウンドで始まらず、フォアグラウンドに向かないようにする方法
サーバーからの収入がステータスバーに表示されるように通知システムを作成しました。 通知に透明なアクティビティ(ダイアログを保持する)が関連付けられているため、ユーザーが通知をクリックすると、ダイアログに表示されます。
Intent notificationIntent = new Intent(CVSApplication.getInstance(), CVSDialogActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(CVSApplication.getInstance(), 0, notificationIntent, 0);
問題は、ユーザーが通知をクリックしなくても、アプリケーションはとにかく前に持ち込まれることです。
startActivityが呼び出されたときにCVSDialogActivityがバックグラウンドから戻らないようにする方法はありますか?ここで CVSDialogActivityを開始意思である:私はしたい
intent = new Intent(app, CVSDialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_FROM_BACKGROUND);
intent.putExtra(USE_CUSTOM_CONTENT, false);
intent.putExtra(INSTANCE, this.hashCode());
が、startActivity(意図)が呼び出されたときにアプリが前面に表示される(:
intent = new Intent(app, CVSDialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(USE_CUSTOM_CONTENT, false);
intent.putExtra(INSTANCE, this.hashCode());
私も、このバリアントを試してみました。ダイアログを含むアクティビティをバックグラウンドで表示し、ユーザが通知をクリックしてアプリをフォアグラウンドにする)。私はこれを解決する方法を見つけた
おかげで、 アレックス