Android 在共享通知时避免当前活动完成
我想在当前的Android 在共享通知时避免当前活动完成,android,Android,我想在当前的活动中启动一个通知,即聊天活动。当我按下通知时,我想输入chatoneivity 但是,我不希望当前的ChatOneActivity在ChatOneActivity中完成。因为我正在接收数据,当我按下后退按钮时,我想留在聊天活动中 关键是我不想让chattactivity完成,不管我当前在哪个活动中 那我该怎么办 这是密码 private void showNotification(String id, String message) { NotificationCompat
活动
中启动一个通知,即聊天活动
。当我按下通知时,我想输入chatoneivity
但是,我不希望当前的ChatOneActivity
在ChatOneActivity
中完成。因为我正在接收数据,当我按下后退按钮时,我想留在聊天活动中
关键是我不想让chattactivity
完成,不管我当前在哪个活动中
那我该怎么办
这是密码
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
,当我按下后退按钮时,我返回到桌面。意味着chattactivity
已经完成,我不想这样做
这是最主要的
<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>
在ChatOneActivity上尝试此功能
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(getApplicationContext(),ChatActivity.Class);
startActivity(intent);
}
创建通知时,您的代码看起来不错,但您还必须在清单中定义父活动,才能返回到stackBuilder。addParentStack假定您也在清单中为API 16+定义父活动:
<activity android:name=".ChatOneActivity"
android:parentActivityName=".ChatActivity"
... />
对于
<activity android:name=".ChatOneActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ChatActivity" />
考虑对这些类型的长时间运行的任务使用服务
。我认为TaskStackBuilder有问题。请显示这些活动的清单声明
我已经添加了清单现在当我按下后退按钮时,它将返回到ChatActivity。但是ChatActivity已经完成。我有什么可以避免的吗?(如果不使用服务)我不太明白,您想导航回ChatActivity,正如您在问题中提到的那样?我的意思是您的代码看起来不错。但是当我按下通知时,onDestory被调用。我不知道为什么。这意味着聊天活动被系统杀死。当你旋转屏幕时,它会调用onDestory和onCreate。这些方法由系统调用。我没有调用finish方法是的,当改变方向时,你可以通过将方向锁定在一种模式(纵向/横向)来确认它&记住接受这个问题,如果它对你有帮助的话