編輯:關於Android編程
開機廣播權限
開機廣播 注冊
開機廣播
public class BootedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { context.startService(new Intent(context, TimeService.class)); } }時間服務
//服務 用於 注冊 監聽時間變化、設置的廣播 時間變化廣播只能動態注冊 public class TimeService extends Service { //監聽時間變化的 這個receiver只能動態創建 private TimeTickReceiver mTickReceiver; private IntentFilter mFilter; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); mFilter = new IntentFilter(); mFilter.addAction(Intent.ACTION_TIME_TICK); //每分鐘變化的action mFilter.addAction(Intent.ACTION_TIME_CHANGED); //設置了系統時間的action mTickReceiver = new TimeTickReceiver(); registerReceiver(mTickReceiver, mFilter); } @Override public int onStartCommand(Intent intent, int flags, int startId) { System.out.println(啟動了服務); return Service.START_STICKY; } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(mTickReceiver); } }
public class TimeTickReceiver extends BroadcastReceiver { private boolean flag; @Override public void onReceive(Context context, Intent intent) { // System.out.println(時間變了 + intent.getAction()); if (intent.getAction().equals(Intent.ACTION_TIME_TICK)) { //每過一分鐘 觸發 } } else { /* * 系統bug?? * android.intent.action.TIME_SET 當調整系統時間後 這個action會收到兩次 */ if (flag) { try { /* do some thing */ } catch (Exception e) { e.printStackTrace(); } flag = false; //第二次置false } else { flag = true; //第一次置true } } } }
MAT(Memory Analyzer Tool), 是著名的Android內存分析工具, 雖然LeakCanary更加便捷, 但是MAT可以清楚地獲知整體內存使用情況,
介紹android官方文檔:AlarmManager在Android平台,除了使用AlarmManger外,還可以使用Timer或者Handler來實現定時任務,但這兩種
第一次編譯時,設定android SDK:F:\RAD Studio XE6\PlatformSDKs\adt-bundle-windows-x86-20131030\s
本文實例講述了Android編程中TextView寬度過大導致Drawable無法居中問題解決方法。分享給大家供大家參考,具體如下:在做項目的時候,很多時候我們都要用到文