当前位置: 首页 > 知识库问答 >
问题:

删除通知时避免当前活动完成

闽涵蓄
2023-03-14

我想在当前的活动中启动一个通知,即ChatActive。当我按下通知时,我想输入ChatOneActive

但是,我不希望当前的ChatOneActivityChatOneActivity中完成。因为我正在接收数据,当我按下后退按钮时,我想留在聊天活动

关键是我不想让聊天活动结束,不管我目前在哪个活动中。

那我该怎么办?

这是密码

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

问题是:

现在我输入ChatOneActive,当我按下后退按钮时,我返回桌面。意味着ChatActive已经完成了我不想要的。

这里是主要的

<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>

共有2个答案

陶元凯
2023-03-14

创建通知时,您的代码看起来很好,但您还必须在清单中定义父活动,才能返回,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" />
商风华
2023-03-14

在ChatOneActive活动上试试这个。

  @Override
  public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(getApplicationContext(),ChatActivity.Class);
    startActivity(intent);
}
 类似资料:
  • 我已经实现了Android推送通知,我可以在应用程序运行时使用此方法扩展来处理它: 但我真正需要的是在我当前的活动中获取通知数据,以更新一些字段,以便用户实时查看。但我找不到一个方法来做到这一点。有人能帮帮我吗?

  • 问题内容: 我们都知道您由于以下原因而无法执行以下操作: 但这显然有时有效,但并非总是如此。这是一些特定的代码: 当然,这导致: 即使没有多个线程。无论如何。 解决此问题的最佳方法是什么?如何在不引发此异常的情况下循环地从集合中删除项目? 我还在这里使用任意值,不一定是an t,因此您不能依赖。 问题答案: 是安全的,您可以这样使用它: 注意,这是在迭代过程中修改集合的唯一安全方法。如果在进行迭代

  • MainActivity在我的应用程序中打开。考虑这个场景, MainActivity(%1)当前正在运行时。通知来了,用户点击并打开Mainactivity(2)。它起作用了。当我点击后退按钮时。Mainactivity(2)被销毁。MainActivity(1)显示给用户,应用程序冻结。我正在寻找关闭MainActivity(1)的方法。

  • 错误:------崩溃开始 08-04 05:53:11.807 266 7-2667/com.example.kwei.minigame1 E/AndroidRuntime:致命异常:main process:com.example.kwei.minigame1,PID:2667 java.lang.nullpointerException:试图在com.example.kwei.minigam

  • 我已经尝试了所有的方法,但它不适合我。我想打开或恢复应用程序,无论屏幕打开,同时单击通知。 我使用了以下方法:

  • 我正在编写一个使用fire base来实现通知的应用程序。在我的Mainactive中,我有一个带有一些url的WebView,但问题是当用户单击通知时,我想在WebView中使用不同的url打开MainActiviy。我读了很多,我在意图中添加了一个捆绑包(在单击通知时打开Mainactive),它会生成所需的url。但是当我单击通知时,Mainactive会重新启动,我的意思是,它不会转到on