android 停止服务执行,android - 为什么在停止服务(执行onDestroy已执行)后,服务中的变量没有“重置”?...
在一个活动中,我定义了以下按钮侦听器:final Button button = (Button) findViewById(R.id.buttonExit);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
stopService(new Intent(StartupActivity.this, SamcomService.class));
finish();
}
});
如您所见,该按钮应该停止正在运行的服务(在上一步中创建),然后自行完成。
当我按下按钮时,service.ondestroy将按预期执行。在ondestroy中,我做了一些清理,然后最后调用super.ondestroy():
@Override
public void onDestroy() { // the service onDestroy
// Do some cleaning
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(1);
// more cleaning
Toast.makeText(this, "The service has been stopped! Wii!", Toast.LENGTH_LONG).show();
super.onDestroy();
}
在我的世界里,这意味着这项服务已经死了,埋了,还有其中所有的变数。对吗?
嗯,看起来不像。
问题是,我的服务中有一个字符串,在单击按钮停止服务之前,我会将文本附加到该字符串。像这样的:
public class SamcomService extends Service {
private String startupText = "";
private void addTextToStartup(String text)
{
startupText += text;
// Sending a broadcast, not relevant
// ...
}
// ...
}
当我再次启动我的应用程序时,这个字符串StartupText不会重置!好像服务根本没被杀。StartupText包含在上一次运行中添加到它的所有文本。
为什么?我错过了什么?服务不是死了吗?当我再次启动应用程序时,将调用serviceocreate方法,这意味着它是从头开始的……
---编辑---
我刚读到:
What exactly does onDestroy() destroy?
这意味着灾难不会真的摧毁任何东西。对的?它很蹩脚,而且非常烦人。在这里有一个很受欢迎的线索,所以我两年前就开始讨论这个问题了,我想……:
Is quitting an application frowned upon?
最佳答案
所以,正如我在上面的编辑中所写的:
我刚读到:What exactly does onDestroy() destroy?
这意味着灾难不会真的摧毁任何东西。对的?它很蹩脚,而且非常烦人。在这里有一个很受欢迎的帖子,所以我两年前就开始讨论这个问题了,我想……:Quitting an application - is that frowned upon?
然而,我解决了我的问题,当然每个人都会说“不!”去。不过,它工作得很好。我只是将System.Exit(0)放在服务中的ondestroy方法中。不再有延迟变量=)
android 停止服务执行,android - 为什么在停止服务(执行onDestroy已执行)后,服务中的变量没有“重置”?...相关推荐
- Android onDestroy方法执行延迟的原因
一整天过去,终于发现了自己项目中的这个问题所在,onDestroy方法执行延迟是因为-->页面跳转代码要放在当前Activity的finish()方法之前执行. 以下为整个事件的过程(仅作个人记 ...
- android serviceconnection unbind流程,Android - Service Bind/Unbind 使用
Service Bind/Unbind 使用方式 本文介绍了本地服务,也就是同一个进程内的服务,如何使用 Bind/Unbind 方式被 Activity 使用. 本文不涉及 AIDL 使用 Serv ...
- 安卓 后台杀死进程,onDestroy会执行吗?
关键词:安卓后台杀死进程,Activity里 onDestroy会执行吗? [答案]:OnDestroy会执行,也不会执行. 如果APP启动了MainActivity,MainActivity再启动了 ...
- 【Android】Chronometer计时器实现计时、停止、暂停、重置功能
[Android]Button+Chronometer计时器实现计时.停止.暂停.重置功能! 一.简介 Chronometer的用法很简单,它支持如下用法: getBase():返回时间. setBa ...
- android ScrollView滚动距离和判断滚动停止状态
今天很高兴,自己解决了判断ScrollView滚动停止的监听,现在分享给大家. 因为ScrollView没有像listView中的setOnScrollListener()监听,当然也就没有SCROL ...
- AndroidStudio_android通过服务,检测本程序是否已经终止运行_终止运行后发送通知给Http服务器---Android原生开发工作笔记246
先做的一个项目,大体是,我这边如果程序已经停止,需要发送一个通知给远程的Httpserver服务器, 然后,远程服务器会通过websocket,通知,显示在大屏上的页面,去清空大屏数据,这样就有问题了 ...
- 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )
文章目录 一.推荐开源项目 二.Android 中执行 FFMPEG 指令 1.导入依赖 2.Java 代码编写 3.使用时的代码示例 三.博客资源 一.推荐开源项目 最近需要在 Android 中进 ...
- android服务进阶,我的Android进阶之旅------Android服务的生命周期回调方法
先引用一段官网上的文字 ======================================================================================== ...
- 【Android 进程保活】应用进程拉活 ( JobScheduler 拉活 | JobScheduler 使用流程 | JobService 服务 | 不同版本兼容 | 源码资源 )
文章目录 一. JobScheduler 用法简介 二. JobScheduler 拉活完整代码 1. JobService 2.清单文件 3.启动 JobScheduler 任务 4.运行效果 三. ...
- android 8.0手机开服务端,Android 8.0 + Service开启方式兼容处理
Android 8.0 + ,对后台服务进行了限制了.如果依然采用之前startService()方式. 会导致问题. 前后台服务的一些区别: 有人可能会问,后台服务我们可以自己创建 ONGOING ...
最新文章
- 【MPI高性能计算】用集合通信改进梯形求和积分
- 开机慢 不换SSD如何提升Windows 10开机速度
- JDK源码系列(2)-Object类
- 【2022最详细--SVN客户端安装教程】
- 3D建模、处理软件及部分算法库简介
- 压力传感器如何直接连接电脑笔记本采集数据表格导出
- 流量计算机标准,-流量计执行标准
- 吊打jd_seckill,Go语言版免配置抢茅台程序,实力接盘~
- MyEclipse配置jdk
- [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)...
- Python数据结构——对有序表二分查找
- MAC 打开所有来源的程序
- Mybatis 映射文件
- 焦点损失函数 Focal Loss 与 GHM
- CF14E Camels
- Android Http请求方法汇总
- PS修改支付宝余额截图
- 500分能上的计算机院校,高考500分上下怎么选大学?推荐这几所学校
- POJ3179 Corral the Cows 离散化 二分 前缀和
- Cellant:中文基站+google地图+轨迹记录+自制基站数据库
热门文章
- mysql临时开启二进制_mysql二进制安装 - yunwei-LS的个人空间 - OSCHINA - 中文开源技术交流社区...
- hdu1023-----卡特兰数
- 音乐机器人活动教案_幼儿园小班音乐教案小熊跳舞律动活动反思【幼儿教案】...
- 怎么让拿到的字符串类型的值去掉双引号显示_python入门系列:Python数据类型
- linux QT 结束当前进程_Linux桌面进化史
- 在线教育与计算机网络的融合发展,[浅谈线上教育和线下教育的融合]
- mysql主从搭建_手把手教你搭建MySQL主从架构
- hbase集群 数据写入_大数据入门必学 - Hbase集群搭建
- c 生成html的div,createElement动态创建HTML对象脚本代码
- linux 用户及用户授权