首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:即使在应用程序被杀死后仍保持异步任务

Android是一个开源的移动操作系统,由Google开发。它基于Linux内核,主要用于智能手机和平板电脑等移动设备。Android操作系统具有广泛的用户群体和开发者社区,提供了丰富的开发工具和资源。

在Android应用程序中,异步任务(AsyncTask)是一种常用的机制,用于在后台执行耗时操作,以避免阻塞主线程,提高用户体验。即使在应用程序被杀死后,异步任务可以继续执行。

异步任务的优势在于它可以将耗时的操作放在后台线程中执行,而不会阻塞主线程。这对于需要进行网络请求、数据库操作、文件读写等耗时操作的应用程序非常重要。通过异步任务,可以保持应用程序的响应性,避免出现ANR(Application Not Responding)的情况。

异步任务的应用场景非常广泛。例如,在一个需要从服务器获取数据并更新UI的应用程序中,可以使用异步任务来执行网络请求,并在请求完成后更新UI。另外,异步任务还可以用于执行耗时的计算任务、文件的读写操作等。

腾讯云提供了一系列与Android开发相关的产品和服务,可以帮助开发者构建高效稳定的Android应用程序。其中,腾讯云移动开发平台(https://cloud.tencent.com/product/mmp)提供了丰富的移动开发工具和服务,包括移动推送、移动分析、移动测试等,可以帮助开发者快速构建和推广Android应用程序。

总结:Android是一个开源的移动操作系统,异步任务是一种常用的机制,用于在后台执行耗时操作。腾讯云提供了与Android开发相关的产品和服务,可以帮助开发者构建高效稳定的Android应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 进程保活招式大全

本文对 Android 进程拉活进行一个总结。 Android 进程拉活包括两个层面: A. 提供进程优先级,降低进程被杀死的概率 B. 进程被杀死后,进行拉活 本文下面就从这两个方面做一下总结。...进程的优先级 Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。...为使总体系统资源进程缓存和底层内核缓存之间保持平衡,系统往往会终止这些进程。 A....其中红色部分代表比较容易被杀死的 Android 进程(OOM_ADJ>=4),绿色部分表示不容易被杀死的 Android 进程,其他表示非 Android 进程(纯 Linux 进程)。...方案适用范围 如下两种情况无法拉活: Service 第一次被异常杀死后会在5秒内重启,第二次被杀死会在10秒内重启,第三次会在20秒内重启,一旦短时间内 Service 被杀死达到5次,则系统不再拉起

3.1K70

NDK--双进程守护之利用线程轮询实现APP保活

掉后自动重启 通过实验发现,如果在adb shell当中kill掉进程模拟应用被意外杀死的情况(或者用360手机卫士进行清理操作), 如果服务的onStartCommand返回START_STICKY, 进程管理器中会发现过一小会后被杀死的进程的确又会出现在任务管理器中...3.android:persistent="true" 网上还提出了设置这个属性的办法,通过实验发现即使设置了这个属性,应用程序被kill之后还是不能重新启动起来的!...4.让应用成为系统应用(ROOT权限) 实验发现即使成为系统应用,被杀死之后也不能自动重新启动。 但是如果对一个系统应用设置了persistent="true",情况就不一样了 。...这将允许不同应用中的各种组件可以共享一个进程,从而减少资源的占用。 手机厂商不会允许这样的情况出现,Android系统java层提出了双进程方案, 大部分手机厂商也会针对于系统源码进行修改。...wucz122140729/article/details/105112504 今天利用守护进程开启线程,不断轮询自身的父进程pid是否为1(父进程死亡后,子进程会被系统进程管理,即子进程的父进程pid为1),来实现进程被杀死后

1.7K20
  • Android基础_1 四大基本组件介绍与生命周期

    而当用户按下BACK 键的时候,你的activity 又会再一次的显示屏幕上,此时任务是由2个应用程序中的相关activity组成的)栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的...而前一个activity 保持栈之中。当用户按下BACK 键的时候,当前activity 出栈,而前一个恢复为当前运行的activity。...举个例子说,比如当前任务栈中存有四个activity──三个在当前activity 之下。当用户按下HOME 键的时候,回到了应用程序加载器,然后选择了一个新的应用程序(也就是一个新任务)。...则当前任务遁入后台,而新任务的根activity 显示出来。然后,过了一小会儿,用户再次回到了应用程序加载器而又选择了前一个应用程序(上一个任务)。...用户会期望当他再次回到这个activity 的时候,它保持着上次离开时的样子。

    1.5K30

    Android性能优化系列---管理你的app内存(一)

    Sharing Memory 为了满足每个app对RAM的需要,Android进程间共享RAM分页。...Restricting App Memory 为了实现多任务功能,Android限制了分配给每个app的heap大小,上限大小各个设备之间差别较大,取决于该设备的总体可用的有效RAM。...因此,%当系统内存吃紧时,系统将按LRU原则杀死后台进程。同时也考量哪些进程最占用内存。...当你开发和实现你的app时,你应该使用下面的技术确保你的app能更有效的使用内存 慎用Service 如果你的app需要一个Servcie运行后台任务时,当执行完该任务后就停止该服务。...这导致了系统LRU缓存区缓存进程数的减少。这也使得app切换更耗时,当系统内存紧张时它甚至能导致系统宕机,并杀死后台正在运行的service。

    1.4K30

    Android后台杀死系列之一:FragmentActivity及PhoneWindow后台杀死处理机制

    FragmentActivity被后台杀死后恢复逻辑 当App被后台异常杀死后,再次点击icon,或者从最近任务列表进入的时候,系统会帮助恢复当时的场景,重新创建Activity,对于FragmentActivity...虽然被杀死了,但是onCreate函数执行的时候还是只执行了一次啊,为什么会出现两个DialogFragment,这里其实就有一个DialogFragment是通过Android自身的恢复重建机制重建出来...setBackStackIndex(bse.mIndex, bse); } 其实到现在现在Fragment相关的信息已经恢复成功了,之后随着FragmentActivity周期显示或者更新了,这些都是被杀死后...对于startActivity函数的调用很多文章都有介绍,可以简单参考下老罗的博客Android应用程序内部启动Activity过程(startActivity)的源代码分析,比如在Activity A...下面结合具体的系统View控件来分析一下这两个函数的具体应用:比如ViewPager与FragmentTabHost,这两个空间是主界面最常用的控件,内部对后台杀死做了兼容,这也是为什么被杀死后,Viewpager

    3K30

    被后台杀死后Android应用如何重新走闪屏逻辑

    Android应用运行在后台的时候,经常被系统的LowMemoryKiller杀掉,当用户再次点击icon或者从最近的任务列表启动的时候,进程会被重建,并且恢复被杀之前的现场。什么意思呢?...这个时候,首先看到其实C,而不是栈底部的A,也就是说往往被杀死后,恢复看到的第一个界面是用户最后见到的那个界面。 ?...Android为了能够让用户无感知后台杀死,就做了这种恢复逻辑,不过,开发中,这种逻辑带了的问题确实多种多样,甚至有些产品就不希望走恢复流程,本文就说说如何避免走恢复流程。...从最近的任务列表唤起,不走恢复流程 首先,APP端必须知道当前Activity的启动是不是走恢复流程,Activity有一个onCreate方法,ActivityThread新建Activity之后...作者:看书的小蜗牛 原文链接:被后台杀死后Android应用如何重新走闪屏逻辑 仅供参考,欢迎指正

    2.8K40

    应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)

    ,即: [1] 降低omm_adj值,尽量保证进程不被系统杀死(本文要讨论的内容); [2] 进程被杀死后,通过其他方式将进程复活(将在下篇讨论)。...再次锁屏,等待20分钟,进程没有被杀死,"咕咚"跑步界面自动弹出,运动状态保持不变; c. 当"咕咚"处于运动暂停状态,退到后台,锁屏进入黑屏状态,然后再进入系统,"咕咚"跑步界面自动弹出。再次锁屏。...等待20分钟,进程没有被杀死,"咕咚"跑步界面自动弹出,运动状态保持不变。...运行在名为“com.jiangdg.keepappalive:daemon_service”进程中;android:enabled属性的作用是Android系统是否实例化应用程序中的组件;android...)来通知手机状态的改变; 3)android:excludeFromRecents属性:用于控制SinglePixelActivity不在最近任务列表中显示; 4)android:finishOnTaskLaunch

    4.1K21

    android

    因此对于开发者来说,设计应用程序的时候,必须时刻牢记这一原则。一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。...当决定某个应用程序是否要终结去释放资源,Android内存管理使用栈来决定基于Activity的应用程序的优先级。...Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用。当另外一个Activity被激活,这个将会被暂停。...待用: 一个Activity被杀死后和被装在前,它是待用状态的。待用Acitivity被移除Activity栈,并且需要在显示和可用之前重新启动它。...Android——Activity栈,Android Task 任务栈,Android下打印调用栈,Android中的任务栈,android的task任务栈,android java 打印调用栈,android

    57540

    Android基础部分再学习---activity的生命周期

    (这里所说的状态都是指对应的某个方法返回之后) 即使一个Activity进入到Paused或者Stopped方法,它仍然是存在的,被保存在任务返回堆栈中。...当一个ActivityResumed状态下,它是不会因内存不够而被系统直接杀死(极端的情况下也有可能被杀死,但是一般不会考虑这种情况)。...方法,他们影响不大,因为他们都是异步的过程 他会把所有的异步代码全部执行了,然后再去执行startActivity():onpause,另一个activity的创建过程,然后是onstop,ondestroy...: a、将被杀掉的进程 和 当前进程 处于同一个包或者应用程序中;android:process b、将被杀掉的进程 是由当前应用程序所创建的附加进程; c、将被杀掉的进程 和 当前进程 共享了普通用户的...如果我们进程中创建了很多的Activity,但是又不想关闭时去退出不在任务栈顶的Activity,那么就可以直接使用这个方法了。

    89920

    Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )

    , 这是 Android 系统本身的机制 ; 注意 : 调用该方法杀死的应用 , 不能处于前台任务栈中 ; 使用 Java 的进程 api 类 java.lang.System 杀死进程 : 参数中传入..., 应用进程会重新启动 ; 二、Android 杀前台进程 ---- 关闭了所有的 Activity 界面窗口 , 应用进程自然就被杀死了 ; activity.finishAffinity(); 上述代码可以关闭所有的本任务栈内的...() 方法 , 该方法可以关闭当前前台任务栈中的所有 Activity , 之后再调用上述两个杀进程的方法 , 即可成功关闭进程 , 应用不会重启 ; // 1...., 然后使用 killBackgroundProcesses 方法杀死后台的其它进程 ; ActivityManager activityManager = (ActivityManager) getSystemService...权限 ; 清单文件中配置该权限 :

    2.6K30

    Android内存管理(八)内存管理小结

    任务(进程)的OS中,内存管理尤为重要,OS需要为每一个进程合理的分配内存资源。所以可以从OS对内存和回收两方面来理解内存管理机制。...同样作为一个多任务的操作系统,Android系统对内存管理有有一套自己的方法,手机上的内存资源比PC更少,需要更加谨慎的管理内存。...Android杀死进程有两个参考条件: 进程优先级 Android为每一个进程分配了优先组的概念,优先组越低的进程,被杀死的概率就越大。...为使总体系统资源进程缓存和底层内核缓存之间保持平衡,系统往往会终止这些进程。 通常,前面三种进程不会被杀死。...回收收益 当Android系统开始杀死LRU缓存中的进程时,系统会判断每个进程杀死后带来的回收收益。因为Android总是倾向于杀死一个能回收更多内存的进程,从而可以杀死更少的进程,来获取更多的内存。

    1.6K20

    关于Android中设置闹钟的相对比较完善的解决方案

    因为setWindow这个方法允许应用程序利用电池优化来自交货批处理即使它适度的及时性要求警报。 主要问题 API 19以后没有了重复设置,那如果设置一个闹钟每天都准确提醒呢?...应用程序被杀死之后,闹钟是否还有效? 说实话,这些问题我相信大家肯定都遇到过,而且解决起来相当费劲,确实是。来看我们如何一一解决吧。...解决遇到的坑 API 19以后如何设置重复闹钟 我们知道,我们使用AlarmManager设置了提醒之后,是通过广播接收的,设置的提醒时间一到,系统发送我们自定义的广播,我们接收到,应用程序提醒。...应用程序被杀死,闹钟失效 可以告诉你们的是,这个还真的没有什么好的解决方案,如果你们程序里写了服务,可以服务重启的时候,判断重新再把闹钟注册一次,或者在打开应用的时候重新注册一次,反正就是能有利于闹钟注册的地方...如果谁有比较好的解决应用程序被杀死后,闹钟失效的问题,欢迎大家提供出来分享。 这个封装的类库的好处 好处就是我把方法都给你们封装好了,直接就可以调用。 直接传入时分的值就可以了。

    1.9K100

    Android应用保活全攻略:30个实用技巧助你突破后台限制

    Android系统中,保活(保持应用进程一直存活)就是为了让应用在后台持续运行,来实现某些特定的功能,如实时消息推送、定位服务等。...当发送一个sticky广播时,系统会将该广播存储在内存中,这样即使应用被杀死,也可以重新启动时收到广播。...WorkManager可以自动选择最佳的执行方式,即使应用退出或设备重启,它仍然可以确保任务完成。...使用多进程 AndroidManifest.xml中为Service或Activity设置android:process属性,使其运行在单独的进程中。这样,即使主进程被杀死,其他进程仍然可以存活。...这样,即使应用在后台,只要有其他应用访问Provider,应用就可以保持存活。 27.

    64920

    Android Service的解析

    Service并不是单独进程中运行,也是运行在应用程序进程的主线程中,执行具体耗时任务过程中要手动开启子线程,应用程序进程被杀死,所有依赖该进程的服务也会停止运行。...应用内或应用间数据通信,Android每个应用程序都在自己的dalvik虚拟机中运行,一个应用是不允许访问其他应用的内存信息的,为此Android引入了Content Provider不同应用间共享数据...Thread是程序执行的最小单元,可以用Thread来执行一些异步的操作。 应用中,如果是长时间的在后台运行,而且不需要交互的情况下,使用服务。...用于在后台执行耗时的异步任务,当任务完成后会自动停止。 有较高的优先级,不易被系统杀死(继承自Service的缘故),因此比较适合执行一些高优先级的异步任务。...service被杀后会重启,但是取决于onStartCommand的返回值。

    13710

    学习|Android中JetPack中的几个组件简单使用

    这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。 ?...说起来Google对JetPack也是非常的重视,从它的官方主页也可以看出来JetPack首页上就有一个导航栏了。 ?...新建一个Android的项目起名为myviewmodel,然后build.gradle中加入 apply plugin: 'kotlin-kapt' android { kotlinOptions...03 lifecycle-savestate 一般来说,我们用LiveData的话,应用程序在后台切换再回来后,当前的UI界面的数据也会保存的,新的Android版本后,一般程序到后台一段时间后,系统会直接杀死程序了...,我们再重新打开程序,像LiveData的数据也不会保存了,所以加上lifecycle-savestate的话可以保证我们程序在被杀死后重新打开还是存在的(当然,如果是手动用返回按钮退出的,它是不会保存的

    1.7K20

    Service服务详解以及如何使service服务不被杀

    Services   服务是一个应用程序组件,可以在后台执行长时间运行的操作,不提供用户界面。一个应用程序组件可以启动一个服务,它将继续在后台运行,即使用户切换到另一个应用程序。...另外,如果一个服务正在运行,且运行了很久,系统就会根据运行时间把其排在后台任务列表的后面,则这个服务很容易被杀掉。...android:process 服务运行所在的进程名。通常为默认为应用程序所在的进程,与包名同名。...前台进程必须发一个notification状态栏中显示,直到进程被杀死。...这两个过程并不完全独立,也可以绑定一个由startService()启动过的服务 关于怎样让服务不被杀死   这个倒是有点流氓软件的意思,但有些特定情况还是需要服务能保持开启不被杀死,当然这样做我还是程序里添加了关闭服务的按钮

    4.2K11

    Android-App性能优化

    所以绘制时要注意两点: 1 .onDraw中不要创建新的局部对象。 onDraw方法中不要做耗时的任务。...还有就是刷新,刷新的话尽量减少不必要的刷新和尽可能减少刷新面积 启动优化 冷启动 冷启动是指安装apk后首次启动应用程序,或者应用程序上次结束,进程被杀死后重新打开app....冷启动开始时,系统有三个任务。...如果是必须在onCreate中进行的如:okhttp等网络请求框架我们onCreate中进行,其他的友盟,百度地图啥的我们可以等程序起来后再onResume方法中执行,bugly等sdk可以异步加载。...避免不合适的时间(例如低电量情况下、弱网络或者移动网络情况下的)执行过多的任务消耗电量。这个我们以后说。

    2.2K40

    Android面试

    Android开发中何时使用多进程 要想知道如何使用多进程,先要知道Android里的多进程概念。一般情况下,一个应用程序就是一个进程,这个进程名称就是应用程序包名。...singleTop 模式 如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity...线程造成的内存泄漏 对于线程造成的内存泄漏,也是平时比较常见的,异步任务和Runnable都是一个匿名内部类,因此它们对当前Activity都有一个隐式引用。...该方式基本可以保证正常运行情况下,以及任务栏移除历史任务后(小米、魅族手机除外),service不被杀死。但是360等软件管家依然可以杀死。另外还有不断启动的逻辑处理麻烦。...当父进程被杀死的时候,子进程仍然可以存活,并不受影响。鉴于目前提到的Android-Service层做双守护都会失败,我们可以fork出c进程,多进程守护。

    98950

    Android四大组件小结

    3、content provider (1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。...(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储一个内容提供者中。它的好处是统一数据访问方式。...需要注意的是AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。...4、android中的任务(activity栈) (a)任务其实就是activity的栈,它由一个或多个Activity组成,共同完成一个完整的用户体验。...而前一个activity保持栈之中。当用户按下BACK键的时候,当前activity出栈,而前一个恢复为当前运行的activity。

    902100
    领券