源碼Demo獲取方法
關注 【網(wǎng)羅開發(fā)】微信公眾號患整,回復【160】便可領取拜效。
網(wǎng)羅天下方法,方便你我開發(fā)各谚,更多Android技術干貨等待領取紧憾,所有文檔會持續(xù)更新,歡迎關注一起成長昌渤!
總結一下使用ACTION_BOOT_COMPLETED的廣播赴穗,解決app開機自啟動的問題
1.首先在你的工程上建一個廣播接受的類,繼承BroadcastReceiver:
package guide.example.com.guidedemo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
/**
* Created by fby on 2017/6/26.
*/
public class BootReceiver extends BroadcastReceiver {
static final String action_boot ="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive (Context context, Intent intent) {
Log.i("charge start", "啟動完成");
if (intent.getAction().equals(action_boot)){
Intent mBootIntent = new Intent(context, MainActivity.class);
// 下面這句話必須加上才能開機自動運行app的界面
mBootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mBootIntent);
}
}
}
2.然后要在AndroidManifest.xml中加入權限和配置相關信息:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3.在application標簽中膀息,配置以下相關信息:
//BootReceiver是上面建的廣播類
<receiver android:name=".BootReceiver">
<intent-filter>
<!--注冊開機廣播地址-->
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
補充說明:
1.查看系統(tǒng)中是否安裝了類似360管家的軟件般眉,為了加快開機速度,默認是關閉掉開機廣播的潜支,只需要在設置中打開即可甸赃。
2.如果監(jiān)聽不到廣播,可以嘗試同時監(jiān)聽廣播和sd卡冗酿。
3.同時監(jiān)聽廣播和sd卡埠对,在application標簽中,配置以下相關信息:
<receiver android:name=".broadcastReceiver.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>