• android activity/service开机后自动运行


     

    看了网上的几个例子,也做了一个系统启动后直接运行activity的小程序

    代码贴在下面:

    首先是从BroadcastReceiver派生出一个新类,用来监听系统启动后发出的广播消息android.intent.action.BOOT_COMPLETED

    BootReceiver.java:

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

    public class BootReceiver extends BroadcastReceiver {

        
    public void onReceive(Context context, Intent intent) { 
             

             
    if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
             {
                  Log.d(
    "BootReceiver""system boot completed"); 
                  Intent newIntent 
    = new Intent(context, FirstRun.class);
             newIntent.setAction(
    "android.intent.action.MAIN"); //MyActivity action defined in AndroidManifest.xml

             newIntent.addCategory(
    "android.intent.category.LAUNCHER");//MyActivity category defined in AndroidManifest.xml

             newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    //If activity is not launched in Activity environment, this flag is mandatory to set

             context.startActivity(newIntent);

             
    //if you want to start a service, follow below method:


             
    /*******************************************************

                Intent service = new Intent(yourService.ACTION_START);
                service.setClass(context, yourService.class);
                context.startService(service);


             *****************************************************
    */
             }
         }
    }

    接下来这个类就是监听到系统启动完毕后,我们要运行的activity.
    FirstRun.java

     

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

    public class FirstRun extends Activity {
        
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }

    当然,我们还要改配置文件,需要注意的是,在manifest.xml中需要加上
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

    Manifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package
    ="com.service.prac"
          android:versionCode
    ="1"
          android:versionName
    ="1.0">
          
        
    <application android:icon="@drawable/icon" android:label="@string/app_name">
            
    <receiver android:name=".BootReceiver"
                      android:label
    ="@string/app_name">
                
    <intent-filter>
                    
    <action android:name="android.intent.action.BOOT_COMPLETED"/> 
                    
    <category android:name="android.intent.category.LAUNCHER" /> 
                
    </intent-filter>
            
    </receiver>
            
    <activity android:name=".FirstRun">
                
    <intent-filter>
                    
    <action android:name="android.intent.action.MAIN" />
                    
    <category android:name="android.intent.category.LAUNCHER" />
                
    </intent-filter>
            
    </activity>
        
    </application>
        
    <uses-sdk android:minSdkVersion="3" />
        
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
    </manifest>


     

  • 相关阅读:
    Oracle之SYSDBA的使用
    多表关联查询之内关联,左关联
    oracle 性能大提升
    Oracle_in_not-in_distinct_minsu的用法
    oracle之Sequences
    oracle 基本函数小例子--查询身高段分数段
    oracle 求班级平均分
    转汉字为拼音的字库和代码收集
    filezilla显示隐藏文件
    escapeRegExp捕捉通配符的代码解析
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1674967.html
Copyright © 2020-2023  润新知