安卓学习笔记之IntentService
2017-07-24 09:29
351 查看
什么是IntentService
它会创建一个独立的子线程来处理所有的Intent请求,创建的子线程来处理onHandleIntent()实现的代码,无需处理多线程的问题。默认实现onBind()方法,返回为null;默认实现onStartCommand()方法,将请求的Intent添加到队列中。这个类实际上是继承自service,内部是封装了HandlerThread和Handler类。代码实现
首先创建一个MyIntentService类,继承自IntentService.既然是Service,就是和单纯创建Service时,要在Manifest清单文件里面注册。
< service android:name=”.MyIntentService”/>
再布局文件里面就只添加一个按钮。代码就不贴了。
然后在MyIntentService 类里面。首先初步需要实现构造方法,传入一个名称,意思就是代表你该线程的名称叫做MyIntentService. onHandleIntent()这个方法在内部实现耗时操作的代码,一般是下载图片比较多。但是我们这里简单的演示一下这个类的使用方式。
public class MyIntentService extends IntentService { private String str; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { Toast.makeText(MyIntentService.this, "已经收到消息了,消息是:"+str, Toast.LENGTH_SHORT).show(); } }; public MyIntentService() { super("MyIntentService"); } @Override protected void onHandleIntent(@Nullable Intent intent) { //该方法是在子线程中执行的,所以需要和handler通信 try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } handler.sendEmptyMessage(1); } @Override public int onStartCommand(@Nullable Intent intent, int flags, int startId) { str = intent.getStringExtra("does"); return super.onStartCommand(intent, flags, startId); } }
在MainActivity类里面
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_send; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_send= (Button) findViewById(R.id.btn_send); btn_send.setOnClickListener(this); } @Override public void onClick(View view) { Intent intent=new Intent(this,MyIntentService.class); intent.putExtra("does","测试成功"); startService(intent); } }
在MainActivity中,开启这个Service。
运行结果如下,
这就是IntentService的使用。
相关文章推荐
- 安卓学习笔记---IntentService的分析与使用
- 安卓学习笔记1——service开机自启动
- 安卓学习笔记--Intent的属性action和category
- 安卓学习笔记之service和activity
- 安卓开发学习笔记(4):系统中的标准Intent
- Android(java)学习笔记210:Android线程形态之 IntentService
- IntentService学习笔记
- 安卓学习笔记---Intent的使用,如何改变Activity在当前任务堆栈中的顺序
- 【安卓笔记】IntentService源码剖析
- 【安卓笔记】IntentService源码剖析
- 安卓学习笔记之service(一)
- Android Service学习之IntentService 深入分析
- Android菜鸟笔记-由startService到bindService的学习
- ExecutorCompletionService学习笔记
- 安卓智慧上海学习笔记系列——禁用ViewPager滑动事件
- 安卓学习笔记一
- Intent进阶 和 Intent-filter 学习笔记
- 安卓学习笔记---Android反编译工具jadx的使用
- 安卓学习笔记--bash脚本
- 安卓学习笔记--读写xml文件