2016-08-30 107 views
1

我想開始通知Activity,即ChatActivity。當我按通知時,我想輸入ChatOneActivity在收到通知時避免當前活動完成

但是,我不想當前ChatActivity完成,當我在ChatOneActivity。因爲我正在接收數據,當我按下後退按鈕時,我想留在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'對於這些類型的長時間運行的任務。 – 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" 
    ... /> 

爲< API 16:

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

+0

現在,當我按下後退按鈕時,它將返回到ChatActivity中。然而,ChatActivity已經完成了。是否有任何爲什麼我可以避免這種情況?(如果不使用服務) –

+0

不完全明白,你想回到ChatActivity,正如你在上面提到的問題? – Farhan

+0

我的意思是你的代碼看起來很好。但是當我按通知時,onDestory被調用。而我不知道爲什麼。這意味着ChatActivity被系統殺死了 –

相關問題