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的区别介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • Android使用SoundPool播放音效实例

    Android使用SoundPool播放音效实例

    这篇文章主要为大家详细介绍了Android使用SoundPool播放音效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android Intent的几种用法详细解析

    Android Intent的几种用法详细解析

    这篇文章主要介绍了Android Intent的几种用法,有需要的朋友可以参考一下
    2014-01-01
  • Flutter轮播图效果的实现步骤

    Flutter轮播图效果的实现步骤

    这篇文章主要介绍了Flutter轮播图效果的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Android仿新浪微博发送菜单界面的实现

    Android仿新浪微博发送菜单界面的实现

    这篇文章主要介绍了Android仿新浪微博发送菜单界面的实现,帮助大家更好的理解和学习使用Android开发,感兴趣的朋友可以了解下
    2021-04-04
  • Android中回调接口的使用介绍

    Android中回调接口的使用介绍

    回调接口在完成某些特殊的功能时还是蛮有用的,下面为大家分享下具体的使用方法,感兴趣的朋友可以参考下哈
    2013-06-06
  • Android Scroller实现弹性滑动效果

    Android Scroller实现弹性滑动效果

    这篇文章主要为大家详细介绍了Android Scroller实现弹性滑动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Android 自定义Switch开关按钮的样式实例详解

    Android 自定义Switch开关按钮的样式实例详解

    本文主要讲的是在Android原生Switch控件的基础上进行样式自定义,内容很简单,但是在实现的过程中还是遇到了一些问题,在此记录下来,需要的朋友参考下吧
    2017-12-12
  • Android如何在一个TextView中设置不同字体大小、不同字体颜色封装

    Android如何在一个TextView中设置不同字体大小、不同字体颜色封装

    在开发过程中遇到过这样一种业务,有很多单行文本字体,字符串中每一部分的字体样式、大小、颜色都不相同,传统的做法是放多个TextView以达到效果,这篇文章主要介绍了android在一个TextView中设置不同字体大小、不同字体颜色封装,需要的朋友可以参考下
    2024-07-07
  • Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解

    Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解

    这篇文章主要为大家详细介绍了Android常用布局FrameLayout、LinearLayout、RelativeLayout,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android EditText被软键盘遮盖的处理方法

    Android EditText被软键盘遮盖的处理方法

    android app新增了透明栏效果,结果发现键盘弹起后会遮盖屏幕底部的EditText,没有像想象中的调整窗口大小,并滚动ScrollView,将EditText显示在键盘上方。下面小编把解决方法记录一下,特此分享到脚本之家平台,感兴趣的朋友一起看看吧
    2016-10-10

最新评论