Android开机广播和关机广播

来源:互联网 发布:华为云计算实验室 编辑:程序博客网 时间:2024/04/28 00:00


有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用Android中的广播机制,编写一个继承BroadcastReceiver的类,接受系统启动关闭广播。代码如下:

<span style="font-size:14px;"></span><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> <a target=_blank title="view plain" class="ViewSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">view plain</a><a target=_blank title="copy" class="CopyToClipboard" href="http://blog.csdn.net/coolszy/article/details/6544598#">copy</a><a target=_blank title="print" class="PrintSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">print</a><a target=_blank title="?" class="About" href="http://blog.csdn.net/coolszy/article/details/6544598#">?</a></div></div><ol class="dp-j"><li class="alt"><span><span class="comment">/**</span> </span></li><li><span><span class="comment"> *@author coolszy</span> </span></li><li class="alt"><span><span class="comment"> *@date 2011-6-14</span> </span></li><li><span><span class="comment"> *@blog http://blog.csdn.net/coolszy</span> </span></li><li class="alt"><span><span class="comment"> */</span><span>  </span></span></li><li><span>  </span></li><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> BootCompletedReceiver </span><span class="keyword">extends</span><span> BroadcastReceiver  </span></span></li><li><span>{  </span></li><li class="alt"><span>  </span></li><li><span>    <span class="annotation">@Override</span><span>  </span></span></li><li class="alt"><span>    <span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onReceive(Context context, Intent intent)  </span></span></li><li><span>    {  </span></li><li class="alt"><span>        Log.i(<span class="string">"MainActivity"</span><span>, </span><span class="string">"系统启动完毕"</span><span>);  </span></span></li><li><span>    }  </span></li><li class="alt"><span>}  </span></li></ol></div> 
<span style="font-size:14px;">然后在AndroidManifest.xml文件中进行注册:</span>
<span style="font-size:14px;">  </span><div class="dp-highlighter bg_xhtml"><div class="bar"><div class="tools"><strong>[xhtml]</strong> <a target=_blank title="view plain" class="ViewSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">view plain</a><a target=_blank title="copy" class="CopyToClipboard" href="http://blog.csdn.net/coolszy/article/details/6544598#">copy</a><a target=_blank title="print" class="PrintSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">print</a><a target=_blank title="?" class="About" href="http://blog.csdn.net/coolszy/article/details/6544598#">?</a></div></div><ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span class="tag-name">receiver</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">".BootCompletedReceiver"</span><span class="tag">></span><span>    </span></span></li><li><span>            <span class="tag"><</span><span class="tag-name">intent-filter</span><span class="tag">></span><span>    </span></span></li><li class="alt"><span>                <span class="tag"><</span><span class="tag-name">action</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.intent.action.BOOT_COMPLETED"</span><span class="tag">/></span><span>    </span></span></li><li><span>            <span class="tag"></</span><span class="tag-name">intent-filter</span><span class="tag">></span><span>    </span></span></li><li class="alt"><span>        <span class="tag"></</span><span class="tag-name">receiver</span><span class="tag">></span><span>   </span></span></li></ol></div> 

同时应添加所需要的权限:

[xhtml] view plaincopyprint?
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  

<span style="font-size:14px;"></span>

既然Android系统在启动完毕后会发送广播,在系统关闭时是否也有对应的广播呢?通过查询帮助文档,找到了系统关闭的广播:

[java] view plaincopyprint?
  1. /** 
  2.  *@author coolszy 
  3.  *@date 2011-6-14 
  4.  *@blog http://blog.csdn.net/coolszy 
  5.  */  
  6.   
  7. public class ShutdownReceiver extends BroadcastReceiver  
  8. {  
  9.   
  10.     @Override  
  11.     public void onReceive(Context context, Intent intent)  
  12.     {  
  13.         Log.i("MainActivity""启动关闭中...");  
  14.     }  
  15. }  

在AndroidManifest.xml文件中进行注册:

<span style="font-size:14px;">  </span><div class="dp-highlighter bg_xhtml"><div class="bar"><div class="tools"><strong>[xhtml]</strong> <a target=_blank title="view plain" class="ViewSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">view plain</a><a target=_blank title="copy" class="CopyToClipboard" href="http://blog.csdn.net/coolszy/article/details/6544598#">copy</a><a target=_blank title="print" class="PrintSource" href="http://blog.csdn.net/coolszy/article/details/6544598#">print</a><a target=_blank title="?" class="About" href="http://blog.csdn.net/coolszy/article/details/6544598#">?</a></div></div><ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span class="tag-name">receiver</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">".ShutdownReceiver"</span><span class="tag">></span><span>    </span></span></li><li><span>            <span class="tag"><</span><span class="tag-name">intent-filter</span><span class="tag">></span><span>    </span></span></li><li class="alt"><span>                <span class="tag"><</span><span class="tag-name">action</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.intent.action.ACTION_SHUTDOWN"</span><span class="tag">/></span><span>    </span></span></li><li><span>            <span class="tag"></</span><span class="tag-name">intent-filter</span><span class="tag">></span><span>    </span></span></li><li class="alt"><span>        <span class="tag"></</span><span class="tag-name">receiver</span><span class="tag">></span><span>   </span></span></li></ol></div>  
<span style="font-size:14px;">是否还需要相应的权限呢?通过查询帮助文档,并没有找到相关的权限,在模拟器中进行测试,当系统关闭后能正常输出信息。</span>
0 0
原创粉丝点击