2017-12-24 8 views
2

私は基本的に1-MainActivity、2 DetailActivity、3-Broadcastの3つの3つのクラスを持つアプリを持っています。アプリが閉じていても放送受信機が動作していて何かを受信した場合は通知を発します。通知を押すとDetailクラスが開きます。この時点まで問題はないので、完璧に働いています。私がDetailActivityを押すと、それは電話の私のホームページに向かっています。アプリはメインクラスに私を指示する必要があります。Broadcastreceiverからの通知は、バックプレス時に閉じるアプリです。

<activity 
    android:name=".MainActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
<activity 
    android:name=".DetailActivity" 
    android:parentActivityName=".MainActivity"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value=".MainActivity"/> 
</activity> 

int id = 1; 
... 
Intent resultIntent = new Intent(this, DetailActivity.class); 
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
// Adds the back stack 
stackBuilder.addParentStack(DetailActivity.class); 
// Adds the Intent to the top of the stack 
stackBuilder.addNextIntent(resultIntent); 
// Gets a PendingIntent containing the entire back stack 
PendingIntent resultPendingIntent = 
     stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
builder.setContentIntent(resultPendingIntent); 
NotificationManager mNotificationManager = 
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(id, builder.build()); 
+1

オーバーライドこれが解決策は何かあればご希望の動作 – MeknessiHamida

+0

を取得するためのバックボタンプレス法、について。 – mehmet

答えて

1

Actualy私はいくつかの試行錯誤の後に答えを見つけたあなただけの(あなたの質問のあたりなど)detailsActivityでそれをオーバーライドする必要が

0

@MeknessiHamidaが述べたように:アプリの後、私はアプリケーションを実行している背景から戻ってアプリに行けば、それは私がされているドキュメントのコードを使用していますメインクラスを開始しますホームページに私を指示します。あなたはOnBackPressedメソッドをオーバーライドし、主な活動を開始する意図を開始する必要があります。主な活動にあなたを指示意図を作る:

@Override public void onBackPressed() { //Include the code here return; }

0

PendingIntent.FLAG_UPDATE_CURRENT

このi線を変更した後私はgetApplicationContext()を使用しています。私はマニフェストとJavaでparentActivityNameなどを追加するために必要なもの文脈

PendingIntent resultPendingIntent = 
       stackBuilder.getPendingIntent(
         0, 
         PendingIntent.FLAG_IMMUTABLE 
       ); 
関連する問題