从通知中启动的活动按返回/主页退出应用程序

2024-02-29

我有一个从通知启动的活动。我使用 TaskStackBuilder 包含一个后退堆栈,以便当用户点击主页按钮(操作栏标题按钮)或使用后退键时,它将返回到应用程序。但是,它不是以这种方式工作的,而是回击或操作栏标题按钮总是导致应用程序关闭。

就其价值而言,我的项目结构的组织方式使得所有 UI 组件都位于 Android 库 (com.be.commotion) 中,并且外部“包装器”项目使用该库。

以下是我构建通知的方法:

// This is the activity that will be launched when tapping the notification
Intent intentNotification = new Intent(this, NowPlaying.class);
intentNotification.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

// Create the back stack so the user can get back to the main activity when pressing the back button
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(NowPlaying.class);
stackBuilder.addNextIntent(intentNotification);
PendingIntent pendingNowPlayingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

// Setup the custom notification view
RemoteViews notificationContent = new RemoteViews(getPackageName(), R.layout.notification_now_playing);
....

// Setup the intent that will play/stop music when the stop button is tapped
Intent musicControlIntent = new Intent(this, CommotionMediaPlayer.class);

PendingIntent musicPendingIntent = PendingIntent.getService(this, 0, musicControlIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notificationContent.setOnClickPendingIntent(R.id.ibMediaControl, musicPendingIntent);

// Update the notification with this info
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle(song.text)
                    .setContentText(song.artist)
                    .setContentIntent(pendingNowPlayingIntent)
                    .setLargeIcon(artwork)
                    .setContent(notificationContent)
                    .setOngoing(true);

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

// Using the nowPlayingNotificationId allows the notification to be updated with later calls instead of causing a new notification to show up
mNotificationManager.notify(nowPlayingNotificationId, builder.build());

以下是我的 AndroidManifest.xml 中的适用定义(对于包装器项目):

    <activity android:name="com.be.commotion.ui.StartupActivity"
            android:label="@string/app_name"
            android:noHistory="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Holo.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity android:name="com.be.commotion.ui.NowPlaying"
              android:label="Now Playing"
              android:parentActivityName="com.be.commotion.ui.StartupActivity"
              android:screenOrientation="portrait">

        <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.be.commotion.ui.StartupActivity" />

    </activity>

您可以通过 2 步骤来完成,而无需使用TaskStackBuilder
1/为您的意图设置标志

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);

2/为您的 PendingIntent 设置标志

pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);

这对我有用,祝大家好运

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从通知中启动的活动按返回/主页退出应用程序 的相关文章

  • 在 Android 上将视频设置为壁纸

    我想知道如何将视频设置为壁纸 否则不可能 我可以将图像设置为壁纸 并且可以构建动态壁纸 但无法将视频设置为壁纸 所以有人知道我该怎么做吗 提前致谢 我认为唯一可以做到的方法是将其合并到 动态壁纸 中 缺点是正如其他人提到的那样 这会严重影响
  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • 在解决依赖关系之前运行 gradle 任务

    我想运行一个 gradle 任务 在 gradle 尝试解决依赖关系之前获取其他源并设置它们 在 build gradle 中有一个任务 用于获取子项目的源代码 该任务需要在 Gradle 尝试解决依赖关系之前运行 因为子项目是依赖关系的一
  • Android - 手机锁定时执行操作

    我想知道如何在手机锁定时执行某些操作 或继续侦听传感器或电池更换事件 当手机锁定时 它会停止监听传感器的变化 我尝试过使用唤醒锁 但它不起作用 也许我使用错误 任何帮助 将不胜感激 我建议为此使用服务 即使手机被锁定 它们也会在后台运行 这
  • Android 中的列表视图到 pdf

    我有一个自定义列表视图 我想从整个列表视图制作pdf 我参考了很多帖子并实现了下面的代码 该代码将我的列表视图转pdf 但问题是它不包含整个列表视图项目 pdf 中仅提供前几项 我的转换函数列表视图转pdf is fab setOnClic
  • ImageView Android 内存

    我原来的后续question https stackoverflow com questions 5339883 android app ram usage 有没有一种方法可以在 Android 应用程序中使用 ImageViews 而不使
  • 在 Android 中从互联网链接获取数据

    我正在制作一个带有 URL 的应用程序 asp 扩展名 我们向其传递所需的参数并使用 POST 方法获取一些字符串结果 关于如何实现这一目标有什么建议吗 UPDATED 实际上我有一个 net 链接 它接受一些 POST 参数并给我一个结果
  • 在 Android 上检测已接听的拨出电话

    我知道这个问题已经被问过很多次了 但没有答案 但我仍然希望有人终于解决了这个问题 问题 我有一台运行 Android 2 3 的未 root 设备 我需要创建一项服务 打电话 等待呼叫被应答 接听电话后挂断电话 有超时 和其他许多人一样 我
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • Android异步服务调用策略

    这是场景 客户端对服务进行远程调用 返回 void 并提供 回调对象 服务在后台线程上执行一些长时间运行的逻辑 然后使用回调对象来触发以太成功或失败 因为这些操作视觉元素 执行 Activity runOnUiThread 块 该场景运行良
  • Android:让用户从图库中选择图像或视频

    是否可以以这样的方式启动图库 以便同时显示图片和视频 Thanks 从图库中选择音频文件 Use MediaStore Audio Media EXTERNAL CONTENT URI Intent intent new Intent In
  • Android物理引擎[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在研究了 3D 游戏编程之后 很快就明白了为什么物理引擎非常有用 Android 支持哪些物理引擎并且可以在 Android 上使用 关于
  • 按钮上方带有文本的单选按钮

    我是 Android 新手 我需要在我的活动中添加单选按钮 但我需要将文本放在项目符号按钮的顶部 请提供任何帮助 我发现了以下内容 尽管我不明白 drawable in 选择器和 style Tab 样式是什么 顶部带有文本的单选按钮 ht
  • 带有内容提供商的小部件;无法使用ReadPermission?

    所以我刚刚为我的应用程序实现了一个小部件 它通过我的数据库从数据库获取数据ContentProvider 我在清单中定义了自己的读 写权限 声明我使用它们 似乎没有什么区别 并在内容提供程序中要求它们
  • Android Studio 停留在构建 gradle 项目信息上

    我正在使用 Android Studio 2 3 每当我尝试创建一个新项目或打开某个项目时 它都会卡在此时 正在构建 Gradle 项目信息 请建议我一些解决方案 它可能正在下载 Gradle zip 文件 e g Users user g
  • 通过覆盖滑动调整图像大小不会调整图像大小

    我在用着Glide下载并显示图像 但是 当我尝试调整图像大小时 它不会这样做 我得到随机大小 或者可能是图像的实际大小 这是我用于通过 Glide 加载的代码 Glide with context load file getUrl asBi
  • 错误:类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter

    我已尝试一切方法来消除此错误 但它不断出现 Class kotlin reflect jvm internal FunctionCaller FieldSetter can not access a member of class com
  • android device.getUuids 返回 null

    我正在尝试使用低功耗蓝牙 BLE 通过 Android 应用程序连接到 Arduino Uno 我正在 Android Studio 上进行开发 使用 Samsung Galaxy S4 和 Android 版本 5 0 1 进行测试我点击
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • Android 使用不同的签名密钥更新市场应用程序

    开发人员使用他的个人密钥库签署了应用程序 但它应该是公司的密钥库 现在是否可以使用公司的密钥库更新市场中的应用程序 并且仍然可以简化对用户的更新 这有什么后果吗 不可以 您必须将该应用程序作为新应用程序发布到市场上 这次是用公司的key签名

随机推荐

  • 适用于高带宽应用的 WebRTC 数据通道

    我想通过 WebRTC 数据通道发送单向流数据 并且正在寻找最佳配置选项 高带宽 低延迟 抖动 以及其他人在此类应用程序中的预期比特率的经验 我的测试程序发送 2k 的块 使用 2k 的 bufferedAmountLowThreshold
  • 找不到 ID 为“xxx”的 UpdatePanel。如果它是动态更新的,那么它必须位于另一个 UpdatePanel 内

    我有一个带有 Ajax 选项卡控件的页面 其中一个选项卡中有一个 Web 控件 它是 Telerik RadGrid 其中编辑表单指向另一个 Web 控件 该编辑表单还包含 Ajax 选项卡 并且在其中一个选项卡上 还有另一个 Web 控件
  • Matlab 中的曲面图

    我正在尝试用对角矩阵绘制曲面 我正在尝试绘制的方程是 f x TDx x 是 2 x 1 向量 D 是 2 x 2 矩阵 这是到目前为止的内容 但我不断收到错误 x linspace 10 10 y linspace 10 10 X Y m
  • 如何将推文居中?

    Twitter 提供了嵌入推文的代码 例如我有 blockquote class twitter tweet p NoSQL space gradually becoming SlowSQL space p mdash Big Data B
  • 为什么我的 TreeSet 不添加第一个元素之外的任何内容?

    我有几个形式的数组 private static String patientNames John Lennon Paul McCartney George Harrison Ringo Starr 然后我制作一个像这样的 TreeSet
  • R knit:可以以编程方式修改块标签吗?

    我正在尝试使用 knit 生成一份报告 该报告对数据集的不同子集执行相同的分析集 该项目包含两个 Rmd 文件 第一个文件是设置工作区和文档的主文档 第二个文件仅包含执行分析并生成相关图形的块 我想做的是编织主文件 然后为每个数据子集调用第
  • Cin 对象返回值 C++ [重复]

    这个问题在这里已经有答案了 我想问一下cin的返回值是多少 我知道它是 ifstream 对象 并且当它在表达式中使用时 如if cin 实际上有一个函数被调用 我想知道它实际上是什么函数 cin fail 或 cin good 或 是if
  • SQL Server 2000 中的交叉表查询

    我希望以前有人尝试过这一点 并且在我进一步之前可以得到一些建议 我希望在 sql server 2000 中生成类似于交叉表查询的内容 我有一个类似于以下的表结构 Item Item Parameter Parameter id item
  • 在我的 iOS 应用程序中实施新的 Google 地图 SDK

    更新 我刚刚收到一封来自 Google 的有关新 Google 地图 iOS SDK 的电子邮件 看来一切都已经解决了 我已成功为我的应用程序创建新的 API 密钥 还没有测试过 但看起来是正确的 他们派我来this https devel
  • 我应该何时以及如何使用 ThreadLocal 变量?

    我什么时候应该使用ThreadLocal https docs oracle com javase 8 docs api java lang ThreadLocal html多变的 它是如何使用的 一种可能 也是常见 的用途是当您有一些非线
  • PHP cURL:获取重定向目标,而不跟随它

    curl getinfo 函数返回大量有关 HTTP 请求结果的元数据 但是 由于某种原因 它不包含我目前想要的信息 如果请求返回 HTTP 重定向代码 则该信息是目标 URL 我没有使用 CURLOPT FOLLOWLOCATION 因为
  • 在 React Native 中使用 mobx 进行状态存储时无法导航到不同的导航菜单

    我对 Mobx 有点陌生 一般来说 我的反应是原生的 我正在尝试使用 mobx 在导航堆栈中实现状态值更改 以便当单击登录按钮时 状态中的值会发生更改 并且导航值参数令牌会更新为 mobx 存储中的最新值 但这不起作用 我收到错误错误任何导
  • 突出显示段落中的关键字

    我需要突出显示段落中的关键字 就像谷歌在其搜索结果中所做的那样 假设我有一个包含博客文章的 MySQL 数据库 当用户搜索某个关键字时 我希望返回包含这些关键字的帖子 但只显示帖子的一部分 包含搜索关键字的段落 并突出显示这些关键字 我的计
  • C、没有 malloc 的 fork 泄漏

    我试图了解内存分配如何在 fork 上工作 即使是静态或动态分配 我很难理解一些泄漏 如下所示 通过这个程序 include
  • Spark Dataframe 中的聚合数组类型

    我有一个 DataFrame 命令 Id Order Gender 1622 101330001 Male 1622 147678 Male 3837 1710544 Male 我想对 ID 和性
  • 字典中具有多个值的单个键

    我的代码中可以有一个全局字典吗 如下所示 group vowel aa ae ah ao eh er ey ih iy uh uw o consonant b ch d dh dx f g hh jh k l m n ng p r s sh
  • 如何在 xml 布局上使用伴随对象?

    我试图在布局内使用伴随对象属性 但编译器无法识别它 Kotlin 类 class MyClass companion object val SomeProperty hey XML布局
  • 如何在 R 中生成给定的均值、SD、偏度和峰度分布?

    是否可以在 R 中生成均值 SD 偏度和峰度已知的分布 到目前为止 最好的途径似乎是创建随机数并相应地对其进行转换 如果有一个专门用于生成可以适应的特定发行版的包 我还没有找到它 谢谢 SuppDists 包中有一个 Johnson 发行版
  • 使用 R 将 qicharts 图转换为 ggplot

    我的数据框看起来像这样 Datetime lt c 2015 09 29AM 2015 09 29PM 2015 09 30AM 2015 09 30PM 2015 10 01AM 2015 10 01PM 2015 10 02AM 201
  • 从通知中启动的活动按返回/主页退出应用程序

    我有一个从通知启动的活动 我使用 TaskStackBuilder 包含一个后退堆栈 以便当用户点击主页按钮 操作栏标题按钮 或使用后退键时 它将返回到应用程序 但是 它不是以这种方式工作的 而是回击或操作栏标题按钮总是导致应用程序关闭 就