Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过PendingIntent调用的活动被自动销毁

通过PendingIntent调用的活动被自动销毁
EN

Stack Overflow用户
提问于 2015-10-02 09:05:08
回答 3查看 1.2K关注 0票数 1

我有一个活动,它在清单中设置了以下特殊属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<activity
        android:name=".LightUp"
        android:excludeFromRecents="true"
        android:launchMode="singleInstance"
        android:noHistory="true"
        android:process=":listener"
        android:taskAffinity="" >
    </activity>

在这个活动中,我正在调度一个AlarmManager来使用这个PendingIntent在某个时候调用自己。AlarmManager是必要的,因为手机在屏幕上活动时会进入睡眠状态,而且我不想抱着唤醒器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pendingIntent = PendingIntent.getActivity(this, 10,
                new Intent(this, LightUp.class)
                .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT),
                PendingIntent.FLAG_UPDATE_CURRENT);

因此,当警报管理器触发时,我将像往常一样在onNewIntent()函数中获得新的意图。这意味着意图也开始了同样的活动。问题是活动在onNewIntent.之后被破坏即使我在onNewIntent,中完全没有代码,我也可以从日志中看到onDestroy正在被调用。

所以问题是为什么叫毁灭?我能做些什么来保持活动的正常进行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-02 09:22:21

看来我找到凶手了。造成问题的是noHistory属性。官方文件上说

android:noHistory ::该活动是否应该从活动堆栈中移除并完成(它的finish()方法被调用),当用户导航离开它并且它在屏幕上不再可见时

嗯,从技术上讲,我打电话给PendingIntent时并没有离开屏幕,奇怪的是,finish被调用了。在移除noHistory之后,它并没有被摧毁。

票数 0
EN

Stack Overflow用户

发布于 2015-10-02 09:14:55

尝尝这个

Activity in Manifest

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<activity
  android:name=".LightUp"
  android:launchMode="singleTop"
</activity>

Java代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Intent notificationintent = new Intent(context, LightUp.class);
notificationintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pIntent = PendingIntent.getActivity(context, (int) System.currentTimeMillis(), notificationintent, PendingIntent.FLAG_UPDATE_CURRENT);

@Override
protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  System.out.println("new intent received");
  // do what ever you want to do here
}
票数 0
EN

Stack Overflow用户

发布于 2015-10-02 09:20:49

试试这个:-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<activity
    android:launchMode="singleTask" >
</activity>

默认情况下,如果您有意调用某个活动,则将创建并显示该活动的新实例,即使另一个实例已经在运行。为了避免这种情况,必须将活动标记为,不应多次实例化。要实现这一点,您必须将活动的launchMode设置为singleTask

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32912291

复制
相关文章
pendingIntent初步_什么是pendingIntent「建议收藏」
通过getActivity(Context context, int requestCode, Intent intent, int flags)从系统取得一个用于启动一个Activity的PendingIntent对象,
全栈程序员站长
2022/07/20
8370
Android基础总结(8)——服务
服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务。服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。不过需要注意的是:服务并不是运行在一个独立的进程当中,而是依赖于创建服务的应用程序进程,当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行。   此外,我们也不要被服务的后台概念所迷惑,实际上服务并不会自动开启线程,所有的代码都是默认运行在主线程中。也就
mukekeheart
2018/02/27
1.6K0
Android基础总结(8)——服务
Unity3D 销毁GameObject api调用顺序
对于每个GameObject来说,实际调用顺序是OnDisable->OnBecameInvisible->OnDestroy,但是在多个GameObject直接不能保证调用顺序,可能第一个GameObject的OnDestroy已经调用了,另一个的OnDisable才开始调用。所以当多个GameObject调用一个全局变量时,要注意。例如:
立羽
2023/08/24
2360
Intent和PendingIntent的区别
intent英文意思是意图,pending表示即将发生或来临的事情。  PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。  Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包
xiangzhihong
2018/01/30
1K0
在Java中,一个对象是如何被创建的?又是如何被销毁的?
总结起来,一个对象的创建过程包括内存分配、对象头信息设置、实例变量初始化、构造方法调用和返回对象引用。这个过程确保了对象被正确地创建和初始化,以便在后续的程序执行中使用。
一凡sir
2023/07/24
4550
Intent 和 PendingIntent 区别
intent 英文意思是意图,pending 表示即将发生或来临的事情。  PendingIntent 这个类用于处理即将发生的事情,比如在通知Notification中用于跳转页面,但不是马上跳转。 
阳光岛主
2019/02/19
2.1K0
Intent 和 PendingIntent 区别
java动态代理中的invoke方法是如何被自动调用的「建议收藏」
静态代理这个模式本身有个大问题,如果类方法数量越来越多的时候,代理类的代码量是十分庞大的。所以引入动态代理来解决此类问题
全栈程序员站长
2022/08/12
2.5K0
Android开发高级进阶——Service与Notification
Service是处理一些后台任务,在主线程中,并不能执行耗时操作。而Thread是开启一个子线程,在子线程中执行耗时操作,这样不会阻塞主线程。
trampcr
2018/09/28
1.7K0
10.多媒体
通知 通知(Notification)是 Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。 通知的基本用法 通知的用法比较灵活,既可以在活动里创建,也可以在广播接收器里创建,当然还可以服务里创建。相比于广播接收器和服务,在活动里创建通知的场景还是比较少的,因为一般只有当程序进入到后台的时候才需要使用通知。 publicclass
六月的雨
2018/05/14
1.3K0
9.服务
服务Service 运行于后台的一个组件,用来运行适合运行在后台的代码,服务是没有前台界面,可以视为没有界面的activity 启动不了服务,在清单文件中写全包名 电话监听器 电话状态:空闲、响铃、接听 此代码在服务里运行,activity是很容易被杀死的 录音机 音频文件的编码和格式不是一一对应的 获取电话管理器,设置侦听 TelephonyManager tm =(TelephonyManager) getSystemService(TELEPHONY_SERVICE); tm.l
六月的雨
2018/05/14
8260
Python 获取被调用函数名称,所处模块,被调用代码行
print(sys._getframe().f_code.co_filename)
授客
2019/09/11
2.5K0
Python 获取被调用函数名称,所处模块,被调用代码行
谁创建谁销毁,谁分配谁释放——JNI调用时的内存管理
在QQ音乐AndroidTV端的Cocos版本的开发过程中,我们希望尽量多的复用现有的业务逻辑,避免重复制造轮子。因此,我们使用了大量的JNI调用,来实现Java层和Native层(主要是C++)的代码通信。一个重要的问题是JVM不会帮我们管理Native Memory所分配的内存空间的,本文就主要介绍如何在JNI调用时,对于Java层和Native层映射对象的内存管理策略。 1. 在Java层利用JNI调用Native层代码 如果有Java层尝试调用Native层的代码,我们通常用Java对象来封装C++
QQ音乐技术团队
2018/01/30
4.6K0
谁创建谁销毁,谁分配谁释放——JNI调用时的内存管理
Tip | Android的Service相关知识提炼
onCreate():服务第一次被创建时调用 onStartComand():服务启动时调用 onBind():服务被绑定时调用 onUnBind():服务被解绑时调用 onDestroy():服务停止时调用
凌川江雪
2019/07/03
6530
Tip | Android的Service相关知识提炼
很全面的Android面试题
这些有些来源于网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有,有可能有些问题讲的不对,能指正的希望大家不吝指教。 Activity 什么是Activity 四大组件之一,一个和用户交的互界面就是一个activity,是所有 View 的容器 Activity 生命周期 生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法. 在这个过程中会针对不同的生命阶段会调用不同的方法 Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回
六月的雨
2018/05/14
5.9K0
销毁Spring Bean: 销毁Bean的基本操作有哪些?
Spring 源码解读分析中上一篇主要介绍关于Bean的初始化以及延迟初始化,接下来分析Bean的销毁阶段-和Bean 的初始化对应!Bean的销毁方式也有三种
码农架构
2020/10/26
3.7K0
销毁Spring Bean: 销毁Bean的基本操作有哪些?
很全面的Android面试题
这些有些来源于网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有,有可能有些问题讲的不对,能指正的希望大家不吝指教。
六月的雨
2022/01/12
5520
很全面的Android面试题
消息栏通知(Notification)介绍
用过安卓的应该对通知栏消息都很熟悉了,下面是演示通知栏消息的一个Demo,首先来看一下界面,后面是代码,解释就都放在代码里了.
全栈程序员站长
2022/07/20
1.6K0
消息栏通知(Notification)介绍
销毁MBProgressHUD
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51065513
用户1451823
2018/09/13
9550
活动被系统回收,临时数据的保存方法
1.在MainActivity中覆写onSaveInstanceState()方法
Aidol
2020/07/23
4620
全面解析Notification
Notification在Android中使用的频率可以说是非常高的,本篇博客,我将围绕着Notification的各方面进行解析,使大家对Notification有更好的认识。
老马的编程之旅
2022/06/22
2.8K0
全面解析Notification

相似问题

服务自动调用销毁活动

44

当活动被销毁时,如何调用overridePendingTransition()?

119

启动新活动时活动被销毁

21

当活动被销毁时,所有服务都会执行onStart()方法,包括被销毁的活动

13

android活动不会在调用finish()时被销毁。

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文