標籤:rmi end ati art boot receive 自啟 public modal
開機自啟主要自訂廣播接收類,且需要在資訊清單檔中註冊,不要在代碼中動態註冊。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<receiver android:name=".***"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter></receiver><service android:name=".***"/>
開始編寫廣播接收器:
public class MyBroadcastRecevice extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){ // TODO: 2016/9/18 context.startService(new Intent(context,***)); } }}
再看來看看在服務中啟動懸浮框的代碼:
/** * 建立懸浮框 */ public void createFloatingBoxView() { wmParams = ((AppContext) getApplication()).getMywmParams(); mWindowManager = (WindowManager) getApplication().getSystemService( Application.WINDOW_SERVICE); wmParams.type = WindowManager.LayoutParams.TYPE_TOAST; wmParams.format = PixelFormat.RGBA_8888; wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; wmParams.gravity = Gravity.TOP | Gravity.LEFT; wmParams.x = 0; wmParams.y = 0; wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT; wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT; floatingBoxView = new FloatingBoxView(getApplicationContext(),this); mWindowManager.addView(floatingBoxView, wmParams); //這兩行負責監聽的,別理他 floatingBoxView.setMoveListener(this); floatingBoxView.setAllClickListener(this); }
Android 應用開機自啟和無需許可權開啟懸浮框