zoukankan      html  css  js  c++  java
  • Android深入浅出系列之实例应用—开机就运行自定义的程序BroadcastReceiver和intentfilter的用法

      前言

      在此之前我们无论是做Activity,Service,BroadcastReceiver,都是在开机之后运行的,其实开机事件也会送出一个叫做Android.intent.action.BOOT_COMPLETED的广播信息,只要可以接收这个ACTION名称,就可以在我们自定义的BroadcastReceiver的onReceive()方法中运行自己的程序了。

      只要一开机就会运行这个程序,知道这个程序被删除掉。

      思路

      为了捕捉系统的开机事件广播,所以必须在AndroidMainfesy.xml里的<application/>节点当中设置<receiver/>标签,并在其下的<intent-filter/>中设置<actionandroid:name="android.intent.action.BOOT_COMPLETED" />,这样只要每次一开机,Android的系统就会把BOOT_COMPLETED广播出来,而对这个广播感兴趣的广播接收器就是我们自定义的这个继承自BroadcastReceiver的MyBroadcastReceiver这个类,所以就会调用这个类的onReceive()方法,在这个方法中我们就可以运行我们的程序了。

      实现步骤

      一:布局文件编写

      1.1 main.xml

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
         >
      <TextView  
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/hello"
          android:id="@+id/mytv"
          />
      </LinearLayout>

      二:代码文件编写

      2.1 MainActivity.java

      package com.menglin.openequipmentrunapp;

      import android.app.Activity;
      import android.os.Bundle;
      import android.widget.TextView;

      public class MainActivity extends Activity
      {
          private TextView tv;
          @Override
          public void onCreate(Bundle savedInstanceState)
          {
              super.onCreate(savedInstanceState);
              //加载main.xml布局文件
              setContentView(R.layout.main);
              //通过findViewById()方法得到TextView对象
              tv = (TextView)findViewById(R.id.mytv);
              //设置TextView对象的文本
              tv.setText(R.string.hello);
          }
      }

      2.2 MyBroadcastreceiver.java

      package com.menglin.openequipmentrunapp;

      import android.content.BroadcastReceiver;
      import android.content.Context;
      import android.content.Intent;

      public class MyBroadReceiver extends BroadcastReceiver
      {

        static final String ACTION = "android.intent.action.BOOT_COMPLETED";
         @Override
         public void onReceive(Context context, Intent intent)
         {

           if (intent.getAction().equals(ACTION))

            {
              //创建一个Intent对象,并指定要启动的class
              Intent myintent = new Intent(context,MainActivity.class);
              //调用另外一个Activity,将主控权移交给MainActivity
              context.startActivity(myintent);

           }
         }
      }

      三:项目配置文件

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.menglin.openequipmentrunapp"
          android:versionCode="1"
          android:versionName="1.0">
         <uses-sdk android:minSdkVersion="8" />

          <application android:icon="@drawable/icon" android:label="@string/app_name">
              <activity android:name=".MainActivity"
                      android:label="@string/app_name">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />

                  </intent-filter>
              </activity>
          <receiver android:name=".MyBroadcastReceiver">
                  <intent-filter>
                      <action android:name="android.intent.action.BOOT_COMPLETED" />
                  </intent-filter>
              </receiver>
          </application>

           <uses-sdk android:minSdkVersion="8" />
               <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
      </manifest>

      运行效果如下

      只要一开机就会出现我们的MainActivity.java这个程序了。

      

  • 相关阅读:
    668. Kth Smallest Number in Multiplication Table
    658. Find K Closest Elements
    483. Smallest Good Base
    475. Heaters
    454. 4Sum II
    441. Arranging Coins
    436. Find Right Interval
    410. Split Array Largest Sum
    392. Is Subsequence
    378. Kth Smallest Element in a Sorted Matrix
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2303214.html
Copyright © 2011-2022 走看看