layout: post
title: Android开发的小细节
categories: blog
date: 2015-06-10
tags: [Android]
category: Android
description: Android开发过程的小笔记,细节,需要注意的地方


Intent隐式启动
Intent隐式启动Activity时必须在指定

否则异常ActivityNotFoundException

Service调用过程

如果 Service 组件是执行长时间运行的操作,则一般采用启动模式。通过调用应用组件对象(如 Activity)的 startService 方法将启动一个 Service 对象实例。如果当前指定的Service 实例没有被创建,则会调用 Service 的 onCreate()方法来创建一个实例;否则直接调用 Service 的 onStartCommand()方法来运行 Service。。因此,Service 的 onStartcommand()方法
可能会重复调用多次。所以在 onStartcommand()方法中要注意线程同步的问题。采用启动模式的 Service 一般持续执行一个单一的操作,而且并不会向调用者返回任何结果

如果 Servise 组件提供一种封装的功能供其他组件使用,则一般采用绑定模式。通过调用应用组件对象的 bindService 方法启动 Service 对象实例,如果当前没有指定的 Service 实例被创建,则该方法会调用 Service 的 onCreate()方法来创建一个实例;实例启动后,将调用 onBind()方法。onBind 将返回给客户端一个 IBinder 接口实例,IBinder 允许客户端回调Service 的方法,比如得到 Service 运行的状态或其他操作。只要连接建立, Service 就会一直运行(不管客户是否保留 Service 的 IBinder 的引用)。通常 IBinder 是一个使用 AIDL 写成的复杂接口。

QQ截图20150607192646.png
  1. START_NOT_STICKY:如果Sevice在启动后,被kill掉,并且没有新启动的Intent传给它,那么将Service移出启动状态并且不重新生成,知道再次显示调用Context.startService。适用场景:网上下载数据。
  2. START_REDELIVER_INTENT:如果Service进程在启动后kill掉,那么它将会被重启,并且最后传给他的Intent通过onStartCommand(Intent ,int,int)会被重新传给他,这种模式保证了传给它Intent一定会被处理完毕,适用场景:关键业务处理。
  3. START_STICKY:如果Service在它启动后被kill掉,那么Android将让Service继续保持started状态,但是不保留启动它的Intent,Android将重新创建Service实例,并执行onStartCommand方法,如果此时没有新的Intent请求,此时Intent的参数是null,这一点要特别注意。适用场景:后台播放音乐。这种运行模式的特点是需要显示启动并停止Service。

广播接收者的相关问题

QQ截图20150608163423.png

更多相关文章

  1. android 和JS互调
  2. android 使用post方法请求网址
  3. 使用android studio中遇到的常见问题及解决方法
  4. Android中设置TextView的颜色setTextColor
  5. Android-Accessibility(Android(安卓)8.0以上)
  6. Android中后台显示悬浮窗口的方法
  7. Android(安卓)四大组件之 Service(二)
  8. Android(安卓)四大组件之一 :BroadCastReceiver 广播接收器详解
  9. 【学习Android(安卓)NDK开发】native code通过JNI调用Java方法

随机推荐

  1. 探究为何:在onCreate中通过View.post能获
  2. Android(安卓)TextView的设置
  3. PhoneGap+JQuery示例项目
  4. 谷歌眼镜GDK开发指南之地理位置和传感器
  5. Android(安卓)NDK-r4 sample--编译运行(二
  6. Android图片选择器功能
  7. Android(安卓)View 事件分发机制流程
  8. Android——SharedPreferences实现登录界
  9. Android日记之2012/02/03——ActivityGro
  10. 关于升级到Android(安卓)studion 3.1.3 g