2016-08-30 3 views
1

Ich möchte eine Benachrichtigung in der aktuellen Activity starten, die ChatActivity ist. Wenn ich die Benachrichtigung drücke, möchte ich die ChatOneActivity eingeben.Vermeiden Sie das Beenden der aktuellen Aktivität, wenn eine Benachrichtigung gesendet wird

Allerdings möchte ich nicht die aktuelle ChatActivity beendet, wenn ich in der ChatOneActivity bin. Weil ich die Daten empfange und wenn ich den Zurück-Knopf drücke, möchte ich im ChatActivity bleiben.

Der Punkt ist, ich will nicht die ChatActivity, beenden, egal welche Activity Ich bin zur Zeit in.

Also, was soll ich tun?

Hier ist der Code

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()); 
} 

Das Problem ist:

Jetzt gebe ich den ChatOneActivity und wenn ich die Zurück-Taste drücken, kehre ich auf den Desktop. Bedeutet das die ChatActivity schon fertig ist was ich nicht will.

Hier ist das 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

Betrachten wir ein 'Service' mit für diese Art von lang laufenden Aufgaben. – Shaishav

+0

Ich denke, es ist etwas falsch mit TaskStackBuilder. –

+0

Können Sie bitte die Manifest-Deklaration für diese 'Aktivität' anzeigen –

Antwort

1

Versuchen Sie dies auf ChatOneActivity Aktivität.

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

Code ist auf der Suche für die Erstellung von Benachrichtigung in Ordnung, aber Sie müssen übergeordnete Aktivität in Manifest definieren auch zurück zu navigieren, stackBuilder.addParentStack gehen davon aus, dass Sie es in Manifest als auch für API definieren 16+:

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

für < API 16:

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

+0

Jetzt, wenn ich die Zurück-Taste drücke, kehrt es in ChatActivity zurück. Allerdings ist die ChatActivity abgeschlossen.Wird es möglich, warum kann ich das vermeiden? (Wenn Sie den Service nicht verwenden) –

+0

nicht genau verstehen, möchten Sie zurück zu ChatActivity navigieren, wie Sie oben in Ihrer Frage erwähnt? – Farhan

+0

Ich meine, Ihr Code sieht gut aus. Aber wenn ich die Benachrichtigung drücke, wird onDestory aufgerufen. Und ich weiß nicht warum. Es bedeutet, dass die ChatActivity vom System –

Verwandte Themen