Andriod Service与Thread的区别介绍

 更新时间:2017年04月21日 14:10:50   投稿:mrr  
我们要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理,既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢,下面通过本文给大家介绍Andriod Service与Thread的区别,一起看看吧

首先,我们需要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理。

既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?

这是因为Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子线程,另一个Activity无法对其进行操作。但是Service就不同了,所有的Activity都可以与Service进行关联,然后可以很方便地操作其中的方法,即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例。因此,使用Service来处理后台任务,Activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。

标准Service的写法:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
// 开始执行后台任务
}
}).start();
return super.onStartCommand(intent, flags, startId);
}
class MyBinder extends Binder {
public void startDownload() {
new Thread(new Runnable() {
@Override
public void run() {
// 执行具体的下载任务
}
}).start();
}
}

 以上所述是小编给大家介绍的Andriod Service与Thread的区别介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • RecyclerView仿应用列表实现网格布局

    RecyclerView仿应用列表实现网格布局

    这篇文章主要为大家详细介绍了RecyclerView仿应用列表实现网格布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Android  Service类与生命周期详细介绍

    Android Service类与生命周期详细介绍

    这篇文章主要介绍了Android Service类与生命周期详细介绍的相关资料,需要的朋友可以参考下
    2017-03-03
  • 详解Android 8.0以上系统应用如何保活

    详解Android 8.0以上系统应用如何保活

    这篇文章主要介绍了详解Android 8.0以上系统应用如何保活,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Kotlin 泛型边界型变及星投影使用详解

    Kotlin 泛型边界型变及星投影使用详解

    这篇文章主要为大家介绍了Kotlin 泛型边界型变及星投影使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Mac Android Studio 3.0 Terminal 中文乱码问题处理

    Mac Android Studio 3.0 Terminal 中文乱码问题处理

    本文给大家分享的是在更新Android Studio 3.0之后,使用Terminal时,发现 git log 命令查看历史 log会乱码,以及最后的解决方法,推荐给小伙伴们
    2017-11-11
  • 详解Android的.aar文件生成方法以及使用技巧

    详解Android的.aar文件生成方法以及使用技巧

    给大家详细分析一下在Android中关于.aar文件生成的方法以及相关是使用技巧分析,需要的朋友学习参考下吧。
    2017-12-12
  • android使用RxJava实现预加载

    android使用RxJava实现预加载

    这篇文章主要为大家详细介绍了android使用RxJava实现预加载的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android PraiseTextView实现朋友圈点赞功能

    Android PraiseTextView实现朋友圈点赞功能

    这篇文章主要为大家详细介绍了PraiseTextView简单实现朋友圈点赞功能的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 解决Android popupWindow设置背景透明度无效的问题

    解决Android popupWindow设置背景透明度无效的问题

    这篇文章主要介绍了解决Android popupWindow设置背景透明度无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Android中的全局变量与局部变量使用小结

    Android中的全局变量与局部变量使用小结

    这篇文章主要介绍了Android中的全局变量与局部变量使用小结,全局变量顾名思义就是在整个的类中或者可在多个函数中调用的变量,也称为外部变量,局部变量则是特定过程或函数中可以访问的变量,需要的朋友可以参考下
    2015-01-01

最新评论