1. 程式人生 > >Android實現開機自啟動某個程式

Android實現開機自啟動某個程式

使用場景:手機開機後,自動執行程式,在螢幕上顯示”Hello. I started!”字樣。

背景知識:當Android手機啟動時,會發出一個系統廣播,叫做:ACTION_BOOT_COMPLETED,它的字串表示常量為android.intent.action.BOOT_COMPLETED。所以只要在開始時程式中捕獲這個廣播訊息,一切就好辦了。

程式碼如下:

1、介面程式碼,

 package com.andy.zhu;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity
{

 private Button button_test_service;
 private Intent intent;
 private Button button_stop;
 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);

  
  TextView tv =  new TextView(this);
  tv.setText("hello started");


  setContentView(tv);
 }

 
}

2、接受廣播訊息,所以新建一個類,並繼承BroadcastReceiver

 package com.andy.zhu;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.util.Log;
public class BootRestartReceiver extends BroadcastReceiver
{
 private final String ACTION = "android.intent.action.BOOT_COMPLETED";
 @Override
 public void onReceive(Context context, Intent intent)
 {
  // TODO Auto-generated method stub
  
  if (intent.getAction().equals(ACTION));
  {
   Intent intent2 = new Intent(context, MainActivity.class);
   intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   context.startActivity(intent2);
   Log.d("DEBUG", "開機自動服務自動啟動...");
   
   //Intent intentService = new Intent();
   //intentService.setClass(context, MyService.class);
   //context.startService(intentService);
   
  }

 }
}

程式碼都很簡單。重寫onReceiver方法,實現要實現的功能就行了。

3、配置menifest.xml檔案

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.andy.zhu"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:persistent="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.andy.zhu.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 -->
        <receiver 
            android:name="com.andy.zhu.BootRestartReceiver"
            >
            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
    </application>
    
    <!-- 新增許可權 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>  
    
</manifest>

相關推薦

Android實現開機啟動某個程式

使用場景:手機開機後,自動執行程式,在螢幕上顯示”Hello. I started!”字樣。 背景知識:當Android手機啟動時,會發出一個系統廣播,叫做:ACTION_BOOT_COMPLETED,它的字串表示常量為android

Android app實現靜默安裝並自動開啟,實現開機啟動,異常崩潰重新啟動,定時關機等

現在很多公司都開始做智慧硬體產品,主要是在Android開發板上面開發應用app,尤其這兩年物聯網越來越火,這方面的需求越來越多,目前公司也是做智慧公交站臺的,需要開發的app實現開機自啟動,異常崩潰重新啟動,版本升級靜默安裝並自動開啟,定時開關機,感覺都要跟Android系

java程式實現開機啟動功能

有時一個程式需要長時間執行,但如果重啟機器,沒人手動啟動軟體時,就沒有辦法執行起來。最好的辦法是能實現程式開機自啟動。 方案一: 工具: Instsrv.exe(可以給系統安裝和刪除服務) Srvany.exe(可以讓程式以服務的方式執行) 步驟:

CentOS 7 - 配置服務實現開機啟動

用戶名 centos 7 ring Language get syslog emc log tst 新建系統服務描述文件 cd /etc/systemd/system sudo vim myapp.service 添加以下配置: [Unit] # 這裏添加你的服務描述 D

Linux環境中Tomcat實現開機啟動

1.在 /etc/init.d目錄下面新建一個文字檔案,命名為 tomcat ,內容如下: #!/bin/sh   # chkconfig: 345 99 10   # description: Auto-starts tomcat   # /etc/init.d/tomc

[原始碼和文件分享]快速啟動目錄實現開機啟動

背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,

[原始碼和文件分享]建立計劃任務實現開機啟動

背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,

[原始碼和文件分享]建立系統服務實現開機啟動

背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,

CentOS 基本指令(四)——將Jetty加入Linux service實現開機啟動

為了使Jetty上的應用程式每次開機後都可以自動執行,需要把Jetty加入到Linux的service中。 使用chkconfig --list命令可以查詢現有的service: 將jetty.sh命令複製到etc/init.d路徑下,將jetty加入到自啟動服務中: 再次檢視現有的se

Android應用開機啟動

應用開機自啟動 廣播接收器部分 public class MyReceiver extends BroadcastReceiver {     public MyReceiver()     {     }     @Override     public void onR

linux實現開機啟動指令碼

#!/bin/bash #chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機, 6指的是重啟,其他為正常啟動。80為啟動的優先順序,05為關閉的優先機 #description:mystart service RETVAL=0 start(){ --啟動服務的入口函式 echo

Android開機啟動Service

之前我們有篇關於介紹 Android 如何實現開機自啟動,不過都寫的是關於如何啟動 Activity,本篇文章將介紹如何啟動 Service。 Service 的啟動相比 Acitivty 而言較為繁瑣,其實都是通過別的類去呼叫被啟動類,只不過可能 Activity 大

linux下開機啟動應用程式

根據linux的開機啟動流程,在載入核心後執行/sbin/init,然後根據執行級別i啟動/etc/rci.d中的各個指令碼,結束後啟動個人化設定/etc/rc.d/rc.local指令碼 應用程式的執行可以在/etc/rc.d/rc.local這個指令碼檔案中進行設定 在/home/temp/

Android實現程式開機啟動

可以通過Android系統中的廣播機制實現開機自啟動。廣播(Broadcast)是Android系統的四大元件之一,通過該機制可以實現不同應用程式之間的通訊。1 開機自啟動基本原理當Android系統開

如何實現程式開機啟動

分為三步: 在AndroidManifest.xml檔案中定義廣播和宣告許可權 實現自定義廣播類 接收到廣播後,設定Activity的啟動模式 在AndroidManifest.xml檔案中定義廣播和宣告許可權 <uses-permission and

修改登錄檔實現程式開機啟動

修改登錄檔實現程式開機自啟動 2017年09月27日 10:55:37 閱讀數:335 登錄檔簡介 何為登錄檔 登錄檔相當於Windows下的一個龐大的層次性資料庫.  基本上有責系統所有的配置資訊 登錄檔是windows作業系統中的一個核心資料庫,其中存放

[原始碼和文件分享]修改登錄檔的方式實現程式開機啟動

背景 想必實現程式開機自啟動,是很常見的功能了。無論是惡意程式,還是正常的應用軟體,都會提供這個功能,方便使用者的使用。程式開機自啟動,顧名思義,就是計算機開機後,不用人為地去執行程式,程式就可以自己執行起來。對於這個功能的,一直都是殺軟重點監測的地方。因為,對於病毒來說,重要的不是如何被破壞,

C++實現程式開機啟動

可以採用以下方式實現自啟動: //拷貝到系統目錄 TCHAR TempPath[MAX_PATH]; CString temp; ::GetSystemDirectory(TempPath ,MAX_PATH); temp = TempPath; temp = temp

Android開機啟動程式設定及控制方法

Android系統通過應用程式自行在系統中登記註冊事件(即Intent)來響應系統產生的各類訊息。 例如Android實現系統開機自啟動程需要在Manifest中加入如下Intent-filter及許可權Uses-permission即可。     <intent-f

如何實現QT程式開機啟動

#!/bin/sh  export LD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib:$LD_LIBRARY_PATH  /home/yjt/test0