我注意到通过滑动从应用切换器中删除应用时出现了令人惊讶的行为.该应用程序有一项服务.当应用程序被“杀死”时,从服务启动的任何线程都会继续运行,其他线程将被终止.
真正令人惊讶的是系统可以确定哪些线程是从服务启动的,即使我试图模糊线程的来源如下:
>在服务的onCreate()方法中,将runnable发布到主线程处理程序.
> runnable启动一个新线程,可以从最近删除.
如果我将完全相同的runnable发布到完全相同的处理程序但是从一个活动发布,则该线程无法生存.系统怎么可能知道?它是否以某种方式跟踪从哪个线程发布的runnable?
编辑:根据要求,onCreate()方法:
@OverrIDepublic voID onCreate() { super.onCreate(); new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @OverrIDe public voID run() { new Thread(){ @OverrIDe public voID run() { while (true) { System.out.println("hello from thread"); try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printstacktrace(); } } } }.start(); } },1000);}
最佳答案@H_502_21@终于找出了会发生什么.系统不会有选择地杀死非服务线程,它会杀死整个应用程序然后再次启动服务,因此看起来该服务的线程没有受到影响. 总结 以上是内存溢出为你收集整理的android – 从最近删除任务时到底发生了什么?全部内容,希望文章能够帮你解决android – 从最近删除任务时到底发生了什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)