前言

  在此之前我们无论是做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这个程序了。

  

转载于:https://www.cnblogs.com/menglin2010/archive/2011/12/27/2303214.html

Android深入浅出系列之实例应用—开机就运行自定义的程序BroadcastReceiver和intent-filter的用法...相关推荐

  1. Android深入浅出系列之实例应用—弹出消息Toast对象的使用自定义方式(二)

    阅读目录 一:前言 二:实例 三:运行效果 一:前言 Android中定义了一个Toast对象,用以弹出一个窗口来给予用户帮助和提示,和对话框不同的是,Toast并不是以独占方式显示的,它并不会抢夺用 ...

  2. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...

    前言 我们现在在随便一个手机上用手指在屏幕上滑来滑都可以去拖动图片,其实在Android里这很简单,下面我就给大家具体讲解一下. 思路   我们首先需要Gallery这个对象,俗称画廊对象,大家都知道 ...

  3. Android深入浅出系列之实例应用—手机页面之间的跳转

    在网页里,我们可以通过超级链接从一个网页跳转到另外一个网页,在手机里面,要如何实现手机页面之间的跳转呢? 原理:通过布局文件和setContentView()方法配合来实现.通过点击第一个布局文件ma ...

  4. Android深入浅出系列之实例应用—弹出消息Toast对象的使用纯文本方式(一)

    阅读目录 一:Toast 二:实现步骤 一:Toast Toast是Android专属的提示信息的对象,它的使用非常的简单,但是用途却非常的广泛,Toast就是一个简短的信息,将要告诉用户的信息以一个 ...

  5. linux 嵌入上电自动运行,如何在linux嵌入式开发板上开机自动运行用户应用程序...

    开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的/usr/etc/rc.local文件中.有的开发板开机后自动运行图形界面程序,需要按住ctrl+c让开发板进入到linux的S ...

  6. Android深入浅出系列之Android开发环境搭建—SDK(三)

    安装SDK 1:下载SDK 只有下载了Android的,SDK(Software Development Kit)软件开发工具包,我们才能从事安卓的开发,SDK可以从Android的官方网站上下载,下 ...

  7. C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)...

    #region//开机自动运行         private void CB_Auto_CheckedChanged(object sender, EventArgs e)         {//C ...

  8. Android深入浅出系列之Android工具的使用—调试桥ADB(二)

    阅读目录 一:调试桥ADB 二:ADB的主要功能有哪些? 一:调试桥ADB   adb是什么?adb有什么用?adb工具如何用? 是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即 ...

  9. Android深入浅出系列之Android工具的使用—模拟器(一)

    前言 我们下载的SDK包里面有一个叫"Tools"的文件夹,里面为我们提供了许多与Android开发相关的工具,其中一些是必不可少的,现在我们就介绍一下模拟器 Android模拟器 ...

  10. Android深入浅出系列课程---Lesson7 LLY110426_Android系统启动

    大家好,上一讲我们介绍了Activity状态保存,这一讲我们将进入Android系统启动. 一.课程目标: 从系统角度了解Android启动过程 二.重点难点:        下载源代码并且根据源代码 ...

最新文章

  1. TensorFlow实现超参数调整
  2. 第一行代码读书笔记1+常见错误分析
  3. 动态规划实现斐波那契数列求解
  4. linux hashmap,Java中对HashMap的深度分析与比较
  5. 【Demo 0085】导出EXE文件资源
  6. toString()
  7. 侧边菜单栏 android-menudrawer
  8. 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...
  9. 股票市值高好还是低好呢?
  10. C++调用C#编写的DLL【转】
  11. kuangbin专题-最短路练习
  12. 使用vcpkg安装numcpp与opencv4[contrib,world]
  13. 电脑网速检测在哪里可以找到
  14. hackerrank初级篇之staircase
  15. 集合_java集合框架
  16. 安科瑞变电站综合自动化系统在安庆市静脉产业园应用
  17. MATLAB实例1——画sin函数曲线图
  18. ARP工作原理以及ARP欺骗、中间人攻击
  19. Intellij IDEA 高级用法:集成 JIRA、SSH、FTP、Database管理、UML类图插件
  20. 【区块链与密码学】第8-6讲:基于SM9签名算法的环签名

热门文章

  1. 皮尔逊系数皮尔逊系数---K近算法之皮尔逊系数
  2. Haar特征与积分图
  3. 动手设计 CPU(一)—— 各类元件功能表
  4. 阿里云oss Referer设置
  5. python文本筛选html,从html页面的列表元素中筛选数据
  6. 分析一个在高并发下的财务支付锁的问题
  7. mysql之使用json
  8. 绘图QPainter-字体
  9. java中的Math类
  10. python 删除大表数据