您好,登錄后才能下訂單哦!
今天小編給大家分享一下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">
以上就是“Android廣播怎么實現App開機自啟動”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。