編輯:關於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
}
}
}
}
高效地分析Android內存--MAT工具解析
MAT(Memory Analyzer Tool), 是著名的Android內存分析工具, 雖然LeakCanary更加便捷, 但是MAT可以清楚地獲知整體內存使用情況,
使用AlarmManager實現Android應用每天定時執行任務
介紹android官方文檔:AlarmManager在Android平台,除了使用AlarmManger外,還可以使用Timer或者Handler來實現定時任務,但這兩種
DELPHI XE Android 開發筆記
第一次編譯時,設定android SDK:F:\RAD Studio XE6\PlatformSDKs\adt-bundle-windows-x86-20131030\s
Android編程中TextView寬度過大導致Drawable無法居中問題解決方法
本文實例講述了Android編程中TextView寬度過大導致Drawable無法居中問題解決方法。分享給大家供大家參考,具體如下:在做項目的時候,很多時候我們都要用到文