2016-07-19 10 views
0

Ich möchte die "ChatActivity" meiner App durch Klick auf Benachrichtigung starten, und wenn ich auf die Schaltfläche Zurück klicken, werden wir auf die "MainActivity" meiner App gehen. Ich schreibe meinen Code als Android Notification Guide. Mein Code ist folgen.Android Navigation über Benachrichtigung mit TaskStackBuilder

NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
      NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
        .setAutoCancel(true) 
        .setCategory(Notification.CATEGORY_MESSAGE) 
        .setContentTitle("你有" + unreadCount + "条新的消息") 
        .setContentText(content) 
        .setNumber((int) unreadCount) 
        //.setColor(Color.RED) 
        .setDefaults(Notification.DEFAULT_ALL) 
        .setSmallIcon(R.mipmap.icon_notify_bold); 
      TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context); 
      Intent resultIntent = new Intent(context, ChatActivity.class); 
      resultIntent.putExtra("to", CommonUtils.removeString(conversation.communicator, 
        ProfileHelper.getProfile().username)); 
      resultIntent.putExtra("conversationId", conversation.id); 
      taskStackBuilder.addParentStack(ChatActivity.class); 
      taskStackBuilder.addNextIntent(resultIntent); 
      PendingIntent resultPendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
      builder.setContentIntent(resultPendingIntent); 
      manager.notify(NOTIFY_ID_MESSAGE, builder.build()); 

Mein Manifest XML ist wie folgt:

<activity 
     android:name=".ui.HomeActivity" 
     android:label="@string/homepage" 
     android:launchMode="singleTask" 
     android:theme="@style/AppTheme.NoActionBar" /> 

    <activity 
     android:name=".ui.ChatActivity" 
     android:label="@string/back" 
     android:launchMode="singleTask" 
     android:parentActivityName=".ui.HomeActivity" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value=".ui.HomeActivity" /> 
    </activity> 

Mein Problem ist, wenn ich Taste in ChatActivity drücken zurück, wird die HomeActivity sogar neu erstellt werden, wenn ich meine App bereits begonnen. Wenn ich meine App gestartet habe und auf der HomeActivity-Seite geblieben bin, denke ich, dass sie nicht erneut erstellt werden sollte. Wie vermeidet man HomeActivity neu erstellen? Jede Hilfe ist dankbar.

Antwort

0

Auf ChatActivity Klasse fügen Sie den folgenden Code-Schnipsel

@Override 
public boolean onSupportNavigateUp() { 
    onBackPressed(); 
    return true; 
} 
Verwandte Themen