iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 >Android广播实现App开机自启动
  • 689
分享到

Android广播实现App开机自启动

启动android广播appAndroid 2022-06-07 20:06:20 689人浏览 薄情痞子
摘要

本文实例为大家分享了Android广播实现App开机自启动的具体代码,供大家参考,具体内容如下 一、概括 在安卓中,想要实现app开机自动启动,需要实现拦截广播android.

本文实例为大家分享了Android广播实现App开机自启动的具体代码,供大家参考,具体内容如下

一、概括

在安卓中,想要实现app开机自动启动,需要实现拦截广播android.permission.RECEIVE_BOOT_COMPLETED,并且需要使用静态注册广播的方法(即在AndroidManifest.xml文件中定义广播); 

二、步骤

1. 先在AndroidManifest.xml文件中定义广播和声明权限;

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<receiver
    android:name=".MyReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>

2. 自定义MyReceiver,继承BroadcastReceiver,代码如下:

public class MyReceiver extends BroadcastReceiver
{
    public MyReceiver()
    {
    }
    @Override
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
        {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}

注意:上面的 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 非常重要,如果缺少的话,程序将在启动时报错;

3. 编写MainActivity类,代码如下:

public class MainActivity extends ActionBarActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toast.makeText(this, "哈哈,我成功启动了!", Toast.LENGTH_LONG).show();
        Log.e("AutoRun","哈哈,我成功启动了!");
    }
}

4. 安装app到手机上,然后启动一次程序(据说安卓4.0以后,必须先启动一次程序才能接收到开机完成的广播,目的是防止恶意程序)

5. 重启手机,测试app有没有自动启动。如果有,那么恭喜你。如果没有,请往下看。

如果按照上面的全部步骤后操作后,重启没有自动启动程序,怎么办呢?是怎么回事呢?那么首先请检查一下你的手机是不是安装了360之类的安全软件,如果有,请在软件的自启动软件管理中将app设置为【允许】(我的手机没有安装这些软件,但是系统设置里面自带了自启动软件管理的功能 ,所以我在这里将我的app设置为【允许开机启动】),重启手机,测试是否成功。如果还是失败,那么请检查你的手机是不是设置了app安装首选位置是sd卡,据说安装到sd卡的话,因为手机启动成功后(发送了启动完成的广播后)才加载sd卡,所以app接收不到广播。如果是的话,把app安装到内部存储试试。如果不懂得设置的话,那么直接在AndroidManifest.xml文件中设置安装路径,android:installLocation="internalOnly"。比如:

<manifest
    package="cn.weixq.autorun"
    xmlns:android="Http://schemas.android.com/apk/res/android"
    android:installLocation="internalOnly">


--结束END--

本文标题: Android广播实现App开机自启动

本文链接: https://www.lsjlt.com/news/30563.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作