Android--IntentService 简介
来源:互联网 发布:易语言编程系统全套 编辑:程序博客网 时间:2024/06/06 09:32
IntentService 简介
IntentService是Service类的子类,用来处理异步请求。
有两个主要特点
1、可以直接在子线程中执行耗时任务。
2、在执行完耗时任务后会自动关闭自身service。
IntentService 内部包含一个Handler,耗时任务在handleMessage方法中执行(耗时操作如果在onStartCommand 中,会引发主线程阻塞,从而引起异常)。
IntentService 源码中,在serviceonCreat() 时会创建一个子线程,获取该子线程的Looper,并将默认的Handler绑定该Looper。
在service开启后,onStart方法中调用已初始化好的handle,发送一个message给自身处理(msg.obj=intent)。handleMessage中执行了两个方法:
1、执行一个回调接口,该回调方法onHandleIntent(Intent arg0),在IntentService 中实现作为执行耗时任务的方法onHandleIntent(是在子线程中运行的)。
2、执行stopSelf(msg.arg1),关闭自身Service。
onStartCommand(Intent, int, int)
instead.If enabled is true, onStartCommand(Intent, int, int)
will return START_REDELIVER_INTENT
, so if this process dies before onHandleIntent(Intent)
returns, the process will be restarted and the intent redelivered. If multiple Intents have been sent, only the most recent one is guaranteed to be redelivered.
If enabled is false (the default), onStartCommand(Intent, int, int)
will return START_NOT_STICKY
, and if the process dies, the Intent dies along with it.
stopSelf()
.<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="kwd" style="color: rgb(0, 0, 136);">package</span><span class="pln"> com</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">lenovo</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">robin</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">test</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">app</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">IntentService</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">content</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">util</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Log</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div></div><div><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">class</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">MyIntentService</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">extends</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">IntentService</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">final</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">static</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">String</span><span class="pln"> TAG</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">"robin"</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">MyIntentService</span><span class="pun" style="color: rgb(102, 102, 0);">()</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">super</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="str" style="color: rgb(0, 136, 0);">"com.lenovo.robin.test.MyIntentService"</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Log</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">i</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">TAG</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="str" style="color: rgb(0, 136, 0);">" is constructed"</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">protected</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onHandleIntent</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> arg0</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Log</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">i</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">TAG</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="str" style="color: rgb(0, 136, 0);">"begin onHandleIntent() in "</span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">try</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Thread</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">sleep</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="lit" style="color: rgb(0, 102, 102);">10</span><span class="pun" style="color: rgb(102, 102, 0);">*</span><span class="lit" style="color: rgb(0, 102, 102);">1000</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">catch</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">InterruptedException</span><span class="pln"> e</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="pln"> e</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">printStackTrace</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Log</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">i</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">TAG</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="str" style="color: rgb(0, 136, 0);">"end onHandleIntent() in "</span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onDestroy</span><span class="pun" style="color: rgb(102, 102, 0);">()</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">super</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">onDestroy</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Log</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">i</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">TAG</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="str" style="color: rgb(0, 136, 0);">" is destroy"</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="kwd" style="color: rgb(0, 0, 136);">new</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="kwd" style="color: rgb(0, 0, 136);">this</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="typ" style="color: rgb(102, 0, 102);">MyIntentService</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="kwd" style="color: rgb(0, 0, 136);">class</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pln">startService</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">intent</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pln">startService</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">intent</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pln">startService</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">intent</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="tag" style="color: rgb(0, 0, 136);"><service</span><span class="pln"> </span><span class="atn" style="color: rgb(102, 0, 102);">android:name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(0, 136, 0);">".MyIntentService"</span><span class="pln"> </span><span class="tag" style="color: rgb(0, 0, 136);">/></span></p>
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p><div><span class="kwd" style="color: rgb(0, 0, 136);">package</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">app</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">content</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">os</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Handler</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">os</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">HandlerThread</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">os</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">IBinder</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">os</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Looper</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="kwd" style="color: rgb(0, 0, 136);">import</span><span class="pln"> android</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">os</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="typ" style="color: rgb(102, 0, 102);">Message</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div></div><div><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">abstract</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">class</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">IntentService</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">extends</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Service</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">private</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">volatile</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Looper</span><span class="pln"> mServiceLooper</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">private</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">volatile</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">ServiceHandler</span><span class="pln"> mServiceHandler</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">private</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">String</span><span class="pln"> mName</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">private</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">boolean</span><span class="pln"> mRedelivery</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">private</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">final</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">class</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">ServiceHandler</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">extends</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Handler</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">ServiceHandler</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Looper</span><span class="pln"> looper</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">super</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">looper</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> handleMessage</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Message</span><span class="pln"> msg</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> onHandleIntent</span><span class="pun" style="color: rgb(102, 102, 0);">((</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln">msg</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">obj</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> stopSelf</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">msg</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">arg1</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">IntentService</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">String</span><span class="pln"> name</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">super</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> mName </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> name</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> setIntentRedelivery</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="kwd" style="color: rgb(0, 0, 136);">boolean</span><span class="pln"> enabled</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> mRedelivery </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> enabled</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onCreate</span><span class="pun" style="color: rgb(102, 102, 0);">()</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0);">// TODO: It would be nice to have an option to hold a partial wakelock</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> // during processing, and to have a static startService(Context, Intent)</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> // method that would launch the service & hand off a wakelock.</span></div><div></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">super</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">onCreate</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">HandlerThread</span><span class="pln"> thread </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">new</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">HandlerThread</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="str" style="color: rgb(0, 136, 0);">"IntentService["</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="pln"> mName </span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="pln"> </span><span class="str" style="color: rgb(0, 136, 0);">"]"</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> thread</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">start</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div></div><div><span class="pln"> mServiceLooper </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> thread</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">getLooper</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> mServiceHandler </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">new</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">ServiceHandler</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">mServiceLooper</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onStart</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln"> startId</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">Message</span><span class="pln"> msg </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> mServiceHandler</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">obtainMessage</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> msg</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">arg1 </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> startId</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> msg</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">obj </span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> mServiceHandler</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">sendMessage</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">msg</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="com" style="color: rgb(136, 0, 0);">/**</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> * You should not override this method for your IntentService. Instead,</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> * override {@link #onHandleIntent}, which the system calls when the IntentService</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> * receives a start request.</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> * @see android.app.Service#onStartCommand</span></div><div><span class="com" style="color: rgb(136, 0, 0);"> */</span></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln"> onStartCommand</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln"> flags</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">int</span><span class="pln"> startId</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> onStart</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="pln">intent</span><span class="pun" style="color: rgb(102, 102, 0);">,</span><span class="pln"> startId</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">return</span><span class="pln"> mRedelivery </span><span class="pun" style="color: rgb(102, 102, 0);">?</span><span class="pln"> START_REDELIVER_INTENT </span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln"> START_NOT_STICKY</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onDestroy</span><span class="pun" style="color: rgb(102, 102, 0);">()</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> mServiceLooper</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln">quit</span><span class="pun" style="color: rgb(102, 102, 0);">();</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div><span class="pln"> </span><span class="lit" style="color: rgb(0, 102, 102);">@Override</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">public</span><span class="pln"> </span><span class="typ" style="color: rgb(102, 0, 102);">IBinder</span><span class="pln"> onBind</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">)</span><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">{</span></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">return</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">null</span><span class="pun" style="color: rgb(102, 102, 0);">;</span></div><div><span class="pln"> </span><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><div></div><div><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">protected</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">abstract</span><span class="pln"> </span><span class="kwd" style="color: rgb(0, 0, 136);">void</span><span class="pln"> onHandleIntent</span><span class="pun" style="color: rgb(102, 102, 0);">(</span><span class="typ" style="color: rgb(102, 0, 102);">Intent</span><span class="pln"> intent</span><span class="pun" style="color: rgb(102, 102, 0);">);</span></div><div><span class="pun" style="color: rgb(102, 102, 0);">}</span></div><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"></p>
- Android--IntentService简介
- Android--IntentService 简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- IntentService简介
- Android
- php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
- springmvc自定义日期转换
- 红黑树的优点
- [leetcode 282]Expression Add Operators
- Android--IntentService 简介
- 查询所有记录数大于1的表
- tomcat 文件配置
- 程序员技术练级攻略
- caffe示例实现之10LeNet的python接口
- Node.js15 os模块
- 如何调试bash脚本
- css选择器
- Java:String和Date、Timestamp之间的转换