android asynctask 全局变量,Android如何在onDestroy()之后重新连接到AsyncTask并重新启动onCreate()?...

我希望我有这个权利,因为它来自我不再使用的一些旧代码(我现在使用IntentService来做以往的事情).

这是我在主Activity中下载文件时最初的内容…

public class MyMainActivity extends Activity {

FileDownloader fdl = null;

...

// This is an inner class of my main Activity

private class FileDownloader extends AsyncTask {

private MyMainActivity parentActivity = null;

protected void setParentActivity(MyMainActivity parentActivity) {

this.parentActivity = parentActivity;

}

public FileDownloader(MyMainActivity parentActivity) {

this.parentActivity = parentActivity;

}

// Rest of normal AsyncTask methods here

}

}

关键是使用onRetainNonConfigurationInstance()来“保存”AsyncTask.

Override

public Object onRetainNonConfigurationInstance() {

// If it exists then we MUST set the parent Activity to null

// before returning it as once the orientation re-creates the

// Activity, the original Context will be invalid

if (fdl != null)

fdl.setParentActivity(null);

return(fdl);

}

然后,我有一个名为doDownload()的方法,如果指示downloadComplete的布尔值为true,则从onResume()调用该方法.布尔值在FileDownloader的onPostExecute(…)方法中设置.

private void doDownload() {

// Retrieve the FileDownloader instance if previousy retained

fdl = (FileDownloader)getLastNonConfigurationInstance();

// If it's not null, set the Context to use for progress updates and

// to manipulate any UI elements in onPostExecute(...)

if (fdl != null)

fdl.setParentActivity(this);

else {

// If we got here fdl is null so an instance hasn't been retained

String[] downloadFileList = this.getResources().getStringArray(R.array.full_download_file_list);

fdl = new FileDownloader(this);

fdl.execute(downloadFileList);

}

}

Source Insight 4.0 及最新版序列号验证机制全解析:如何快速定位关键函数并构造有效Key 本文深入解析了Source Insight 4.0及最新版的序列号验证机制,详细介绍了如何快速定位关键函数并构造有效Key。通过静态分析和动态调试技术,帮助开发者理解现代软件保护的设计哲学,掌握逆向分析方法论,提升安全研究能力。 阅读详情

相关推荐

面试复习题--RN面试

考察点:热更新方案的深度理解,选型能力,实战落地经验。答题思路主流热更新方案对比。

hqiangtai的博客 725

Android倒计时器实现:线程与Handler的最佳实践

在Android开发中,多线程编程是处理耗时操作的核心技术,而Handler机制则是实现线程间通信的关键组件。通过将后台线程的时间计算与主线程的UI更新分离,开发者可以避免ANR(Application Not Responding)问题,确保界面流畅性。这种技术组合特别适合电商限时抢购、健身应用计时等需要精确时间控制的场景。相比传统的Timer或AsyncTask方案,Thread+Handler模式提供了更灵活的线程控制和更高的安全性。实际开发中还需注意内存泄漏防护和时间精度优化,这些都是构建稳健And

weixin_30340819的博客 441

动态欧拉角与静态欧拉角:从理论到实践的深度解析

本文深度解析了动态欧拉角与静态欧拉角的核心区别与应用场景。静态欧拉角基于固定世界坐标系,适用于全局导航与三维场景编辑;而动态欧拉角基于物体自身坐标系,更符合飞行模拟、机器人控制等直觉操作,但需警惕其固有的万向节死锁问题。文章通过理论结合实战,帮助开发者在机器人、无人机及图形学项目中正确选用与处理旋转表示。

java5的博客 1073

android ondestroy service,android – 在onDestroy()之后仍然运行的IntentService onHandleIntent()...

在我的首选项屏幕中,我想启动一项服务,以便在点击其中一个首选项时从互联网上下载文件.如果服务已在运行(下载文件),则应停止服务(取消下载).public class Setting extends PreferenceActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedIns...

weixin_39929961的博客 613

微信DAT图片解密全攻略:一键转换JPG/PNG/GIF

本文详细解析了微信电脑版中DAT图片的加密原理与存储路径,并提供了从定位文件到使用专业工具进行一键解密的完整操作指南。通过简单的步骤,用户可将加密的DAT文件无损还原为JPG、PNG或GIF格式,有效解决无法直接查看聊天图片的难题,同时兼顾了隐私清理与磁盘空间管理。

hill8的博客 1363

四、SVN客户端tortoiseSVN的基本功能介绍

档案浏览器(Repo-browser) 鼠标右键–>tortoiseSVN->版本库浏览器 输入版本库URL地址,进入如菜单界面 版本库浏览器支持SVN及http两种最常用的通信协议 SVN服务器访问方式 方法 模式 访问方法 File:// 直接版本库访问(本地磁盘) http:// 通过配置subversion的WEB服务器的WEBDAV协议 http...

也许是我送你哦 1011

Android IntentService的使用

今天在集成个推的推送服务的时候,看到个推在接受推送的消息的处理的时候,用的是服务,这个和之前的不一样,,老的个推接受消息用的是广播,根据个推的文档说: 从2.9.5.0版本开始,为了解决小概率发生的Android广播丢失问题,我们推荐应用开发者使用新的IntentService方式来接收推送服务事件(包括CID获取通知、透传消息通知等) 在此之前只是听说过IntentService,...

androidzmm的博客 1154

理解ADC:为什么需要抗混叠滤波器?

本文介绍 ADC 的混叠现象,引出抗混叠滤波器,并介绍一种开关电容滤波器,它具有很小的增益过渡带。

疯狂的运放 5939

android intentservice可以绑定吗,Android IntentService使用介绍以及原理分析

简介在Android应用的程序中,普通的Service中的代码是运行在主线程中的,如果想要在Service中做些耗时的操作,就很容易出现ANR的现象(大概是20秒),那么我们经常的做法就是,在onStartCommon方法中开启一个子线程然后内部执行耗时的操作,在执行完毕后如果需要自动停止服务需要在子线程的run方法中调用stopSelf()来停止服务。虽说在Service中执行耗时的代码可以很容...

weixin_36337389的博客 367

HyperMesh 2025新功能尝鲜:用Volume Tetramesh一键生成工业级四面体网格

HyperMesh 2025推出的Volume Tetramesh功能,通过“体到体”的全新范式,实现了工业级四面体网格的一键生成。该功能利用Proximity与Curvature参数智能识别并加密几何特征,将工程师从繁琐的几何清理和表面网格划分中解放出来,在保证网格质量的同时,显著提升了前处理效率,尤其适用于发动机缸体等复杂模型的仿真分析。

weixin_29229055的博客 477

微信小程序中使用画布canvas实现动态心电图绘制

近期,接了个项目,三端(小程序、PC、公众号)同步开发,PC端没的问题,以前一直做的就是PC端,但是小程序和公众号之前没有做过,只能通过这个项目,边做边学了。人家都说小程序用原生的特别难,大部分都用uniapp开发,说是这个方便快捷,还能写app呢,因为我们的项目,需要用到蓝牙采集数据、画布画仪表盘以及心电图等,所以我们不太敢用uniapp开发,硬着头皮开始用原生开发。开发的过程中,也遇到过很多问题,但是好在经过我们团队的不懈努力,问题基本都解决了。下面我就来分享一下,在小程序中,如何通过canvas。

穆雄雄的博客 3651

Android中IntentService的使用

IntentService继承自Service,可以处理异步请求。IntentService和Service的区别在于,用户可把任务通过startService()方法把任务封装在Intent中交于IntentService处理。IntentService可以处理多个任务,只需要实现在onHandleIntent()方法中实现每个任务的处理逻辑即可(用户通过调用startService来提交任务)。 Service默认运行在主线程中的,而IntentService则会自动开启子线程来处理请求。同时,Inte

进击の程序猿! 的博客 441

【Matlab】matlab代码实现sph溃坝模拟

本文介绍了一个基于MATLAB的SPH溃坝模拟实现。代码使用平滑粒子流体动力学方法,通过建立1000个随机分布的粒子,计算粒子间的相互作用力来模拟流体运动。模拟过程包括初始化参数、粒子创建、密度压力更新、速度位置计算以及可视化展示。核心算法采用poly6Kernel和spikyKernelGradient函数处理粒子间作用力。该示例为二维简化模型,仅包含基本物理参数和计算流程,实际应用需进一步优化扩展。

unber的博客 206

Android四大组件深度解析:从Activity生命周期到Service启动模式的完整指南

想要掌握Android开发的核心技术?Android四大组件是每个开发者必须深入理解的基础知识!🔥 本文将为你提供一份完整的Android四大组件指南,涵盖Activity生命周期、Service启动模式、BroadcastReceiver和ContentProvider的全面解析。无论你是Android新手还是需要复习的老手,这份终极指南都能帮助你快速掌握Android应用开发的核心组件。

gitblog_00290的博客 406

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

安卓面试题总结

Android 的四大组件分别是:Activity、Service、Broadcast Receiver 和 Content Provider. 1)Activity:这是你与用户进行交互的入口。每一个 Activity 都是一个单独的界面,负责显示 UI和响应用户操作。 2)Service:Service 是运行在后台且不直接与用户交互的组件。适用于需要在后台执行长时间运行操作的任务,类似播放音乐或下载文件等。 3)Broadcast Receiver:用于

my_power520的博客 587

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android 四大组件之一:Service后台服务之IntentService

一、IntentService与Service的区别  感觉说是IntentService与Service的区别也可以理解为我们为什么使用IntentService,在我们是用service的时候之前我们有说过耗时操作可以在它里面进行但是需要新开启一个线程去进行耗时操作,但是这种服务在运行的之后不能自动停止,需要我们在应用程序中找到正在运行的服务中找到它手动关闭。在这里google为我们提供了一种可

danfengw的博客 1301

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android基础-Service和IntentService知识点详细总结

Service 对于广大的Android开发者来说算是耳熟能详了,作为Android的四大组件之一,在我们的开发中也起着重要的作用,在Android面试中,Service相关的问题也是面试官问得比较多的,当别人问你,Service 到底是什么的时候?你可能随口就能答得上来,Service是一个在后台执行长时间运行操作而不用提供用户界面的应用组件,可由其他组件启动,即使用户切换到其他应用程序,Service 仍然在后台继续运行。没错,这是Service的概念,作为Android开发,或多或少都知道一些,但是不

语桥的博客 1371

android intentservice 实例,IntentService 深度解析(实例 + 源码)

上一篇:上文说过Service默认工作在当前进程的主线程中,如需执行耗时操作,需要手动开启线程;且一旦开启服务,就会一直运行,直到stopService()或者stopSelf();也就是说我们在线程任务执行完毕后需要手动stopSelf(),才能释放service资源。android提供了IntentService来实现这个功能,封装了线程,并能够在线程任务执行完毕后,结束serviceInte...

weixin_36244383的博客 290

Android四大组件之Service之IntentService

一、IntentService的含义 异步的,会自动停止的服务。 二、IntentService和service的区别 service服务默认是运行在主线程中的,如果直接在服务中处理一些耗时的逻辑,就可能会出现ANR,所以我们一般都在服务的具体方法里开启一个新的线程去处理具体的逻辑,然后,这种类型的服务一旦启动后,就会一直运行,要想停止服务就得调用stopSeft() 然后Android专门提供了IntentService来简单的创建异步,自动停止的服务。 三、In...

sunbinkang的博客 1829

Android多线程2:IntentService

1.IntentService概述 IntentService是一种特殊的Service,它继承了Service并且它是一个抽象类,因此必须创建它的子类才能使用IntentService。 客户端startService发送请求,IntentService就被启动,然后会在一个工作线程中处理传递过来的Intent,当任务结束后就会自动停止服务。 IntentService是自己维护了一个线程,来执行耗时的操作,然后里面封装了HandlerThread,能够方便在子线程创建Handler。 2.Inten

qq_40959750的博客 404

Android的onDestroy方法,android – 活动方法:onCreate()和onDestroy()

当第一次创建一个活动时,系统会调用OnContentChanged()方法作为第一个方法,当一个活动被杀死时,系统的最后一次调用是OnDetachedFromWindow()方法,但是android文档表示在OnCreate之间发生活动的整个生命周期()和OnDestroy()。为什么?请帮我理解这些方法之间的区别。码:import android.app.Activity;import andr...

weixin_28717683的博客 1768

Activity生命周期onDestroy

介绍Activity生命周期的文章网上有很多了。 本文重点介绍下onDestroy执行的一些场景。 先看下生命周期流程图 容易被开发者忽略的就是,onDestroy方法,在App被强制杀死时,是不会执行的。 最近集成第三方sdk时遇到一个现象,通过判断onDestroy方法执行,来避免了重大bug。 例子: ActivityA 是我项目的主界面 ActivityB 是第三方sdk项目主界面 Ac...

weixin_33881753的博客 1674

Android之IntentService源码分析(第三篇:退出)

每当我们startService后,IntentService总会自己结束,在第一篇文章中,其实已经知道它为什么自我退出了 0、IntentService中定义的一个普通内部类,它是一个Handler类 当重写的onHandleIntent方法调用完后,马上就会调用的是一个stopSelf方法,它的调用代表Service的结束,也意味着onDestroy方法会被调用(见1号知识点) ...

王员外的博客 403

OnDestroy方法 很好用的方法

OnDestroy方法 很好用的方法 不能忘了它 用一段简单的例子解释一下 这是AA脚本 using UnityEngine; using System.Collections; public class AA : MonoBehaviour { void OnDestroy(){ print("Des A"); } } 这是CC脚本 using UnityEngin

CyRo 1万+

AsyncTask的cancel方法并没有停止任务

今天使用LeakCanary,使用AsyncTask模拟一个内存泄漏的情况: onCreate里面调用startAsyncTask(): /** * 模拟一个内存泄漏 AsyncTask任务没有结束,Activity退出 */ void startAsyncTask() { // This async task is an anonymous class and th

我的专栏 6424

安卓 后台杀死进程,onDestroy会执行吗?

关键词:后台杀死进程,OnDestroy会执行吗? 【答案】:OnDestroy会执行,也不会执行。 如果APP启动了MainActivity,MainActivity再启动了Activity1,Activity1再启动了Activity2。这时在后台手动杀死进程(先显示进程列表,手指选中应用向上滑,杀死进程),会在log里看到Activity1和Activity2的OnDestory没有执行,但MainActivity的OnDestroy执行了。 所以一定要释放的资源请放在MainActivity的OnD

achirandliu的专栏 9112
上一篇: android 编译cordova,cordova添加Android平台(项目打包签名生成apk文件)
下一篇: android 天气接口简书,IOS 天气预报接口参考
焚海炖鱼
博客等级 码龄8年 29粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值