2016-08-30 14 views
1

ChatActivityの現在の通知を現在のActivityで開始したいと考えています。通知を押すと、ChatOneActivityと入力します。通知をシャットダウンするときに現在のアクティビティの終了を避ける

しかし、今私がChatOneActivityにいるときに現在のChatActivityが終了しないようにしています。私はデータを受け取っているので、戻るボタンを押すとChatActivityに滞在したいと思っています。

ポイントは、私はChatActivityは関係なく、私は、現在では午前たActivity、終了していないしたくないです。

だから私は何をすべきでしょうか?ここで

コード

private void showNotification(String id, String message) { 
    NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()) 
    .setSmallIcon(android.R.drawable.sym_action_email) 
    .setContentTitle("You have a new message") 
    .setContentText(message); 
    Intent intent = new Intent(ChatActivity.this,ChatOneActivity.class); 
    intent.putExtra("toId", id); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(ChatActivity.this); 
    stackBuilder.addParentStack(ChatOneActivity.class); 
    stackBuilder.addNextIntent(intent); 
    PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT); 
    builder.setContentIntent(pendingIntent); 
    NotificationManager mNotificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(1, builder.build()); 
} 

で問題がある:

は今、私はChatOneActivityを入力して、私は戻るボタンを押したとき、私はデスクトップに戻ります。私が欲しくない、ChatActivityが既に完成していることを意味します。ここで

はmainfest

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.webmobilegroupchat" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="16" /> 

<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.webmobilegroupchat.MainActivity" 
     android:label="@string/app_name" > 
    </activity> 
    <activity 
     android:name="com.example.webmobilegroupchat.ChatActivity" 
     android:label="@string/title_activity_chat" > 
    </activity> 
    <activity 
     android:name="com.example.webmobilegroupchat.ChatOneActivity" 
     android:label="@string/title_activity_chat_one" > 
    </activity> 
    <activity 
     android:name="com.example.webmobilegroupchat.SplashActivity" 
     android:label="@string/title_activity_splash" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+0

は 'Service'を使用することを検討して

<activity android:name=".ChatOneActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".ChatActivity" /> 

:< API 16

これらのタイプの長時間実行されるタスクのために。 – Shaishav

+0

私はTaskStackBuilderに何か問題があると思います。 –

+0

これらの「活動」のマニフェスト宣言を表示してください。 –

答えて

1

ChatOneActivity活動でこれを試してみてくださいです。

@Override 
    public void onBackPressed() { 
    super.onBackPressed(); 
    Intent intent = new Intent(getApplicationContext(),ChatActivity.Class); 
    startActivity(intent); 
} 
0

あなたのコードが通知を作成するための細かい探していますが、あなたが戻ってナビゲートするためにも、マニフェスト内の親アクティビティを定義する必要があり、stackBuilder.addParentStackはあなたがAPI 16+のためにもマニフェストで定義することを前提としています

<activity android:name=".ChatOneActivity" 
    android:parentActivityName=".ChatActivity" 
    ... /> 
+0

を追加しました。戻るボタンを押すと、ChatActivityに戻ります。しかし、ChatActivityは終了しました。何故私はこれを避けることができますか?(サービスを使用しない場合) –

+0

は正確に理解できません。あなたの質問で上記のようにChatActivityに戻って行きたいですか? – Farhan

+0

あなたのコードはうまく見えますが、私は通知を押すと、onDestoryが呼ばれます。そして、私はなぜそれがChatActivityがシステムによって殺されることを意味するのかわかりません。 –

関連する問題