Java/ Android

@fd-javaAndroid

Public team

Joined on Feb 24, 2021

  • Android 4.4 之前,儲存空間: 內部手機本身的內部儲存 外部 外插 SD card 的外部儲存 Android 4.4 之後,儲存空間:
     Like  Bookmark
  • //設定隱藏標題 getSupportActionBar().hide(); //設定隱藏狀態 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); Ref. 【Android】隱藏標題列(Title Bar)與狀態列(Status Bar)
     Like  Bookmark
  • 角色GATT Server/ Peripheral: BLE device GATT Client/ Central: 手機 未配對情況下,BLE device 會一直廣播,直到手機發送 request 給 BLE device,等待 BLE device 回傳 response。 定義: uuid 0x2800 is Service uuid 0x2803 is Characteristics Ref.
     Like  Bookmark
  • 簡述 Service可以在背景不斷的工作,直到停止或是系統無法提供資源為止。 Service 需要透過某Activity 或者其他Context 物件來啟動。 Service不需要和 user 互動,所以沒有操作介面。 生命週期與Activity是各自獨立的,Activity就算關閉,Service仍然可以繼續執行。 類似 BroadcastReceiver,需要定義一個繼承 Service 的類別,並覆寫其中的生命週期函數,最後在AndroidManifest.xml中宣告才能使用 Service可以同時支援 Started 與 Bind 兩種模式。在這種情況下,Service 需要等到兩種模式都被關閉才會觸發onDestroy()事件。 Service 只有第一次被啟動時,會執行onCreate(),若重複啟動則不會執行onCreate()。 Service的運作優先權相當的高,一般來說除非系統資源耗盡,否則 Android 不會主動關閉一個已被啟動的Service。一旦系統有足夠的資源,被 Android 關閉的Service也會被重新啟動。 兩者都需要在AndroidManifest.xml宣告
     Like  Bookmark
  • Ref 碼農日常-『Android studio』取得手機位置經緯度 LocationManager
     Like  Bookmark
  • HttpUtils.java 使用一個 Util 類別來處理 http 的連線,接收兩參數: apiUrl 為 server domain,string 格式,Ex:http://192.168.1.100:8000/rest/test jString 為自定義物件的 string 格式,透過 Gson 將物件轉成 string 結果回傳 string 格式,再透過 Gson 將 string 轉成自定義物件 public class HttpUtils {
     Like  Bookmark
  • Ref. 《Android》『Handler』- 如何在 Thread 中透過 Handler 傳遞訊息以更新UI介面 Android Handler 用法 Handler之Message详解
     Like  Bookmark
  • 寫入任意 Class (泛型)的寫法: public void saveObject(Object object, String prefKey) { Gson gson = new Gson(); String json = gson.toJson(object); Editor prefsEditor = currentPref.edit(); prefsEditor.putString(prefKey, json); prefsEditor.commit(); }
     Like  Bookmark
  • 點擊空白處隱藏 應用場景: activity 包含四個 fragment,其中fragment 各自有自己的 EditText,將 code 寫在 activity 中即可。 於 activity 覆寫 dispatchTouchEvent 方法如下: /** * 點擊空白處隱藏鍵盤 */ @Override
     Like  Bookmark
  • new Handler().postDelayed( new Runnable() { @Override public void run() { // do something } }, 500 );
     Like  Bookmark
  • 我用的是方法2 Ref. Android studio 中的AVD manger啟動失敗原因解決方法
     Like  Bookmark
  • public boolean isExistDB(String dbname) { // getDatabasePath 為系統指定的 databases 目錄底下, 參數直接帶入要檢查的檔案名稱即可 File file = getDatabasePath(dbname); return file.exists(); /* Another method: 直接指定路徑 String path = getDataDir().getPath() + "/databases/" + dbname; File f = new File(path); return f.exists(); */
     Like  Bookmark
  • private boolean isAppRunning() { ActivityManager mgr = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> apps = mgr.getRunningAppProcesses(); String myAppPackageName = BuildConfig.APPLICATION_ID; logger.debug("myAppPackageName: " + myAppPackageName); for(ActivityManager.RunningAppProcessInfo app: apps) { logger.error("isAppRunning processName: " + app.processName); if (app.processName.equals(myAppPackageName)) {
     Like  Bookmark
  • Ref. Android: How to set a default value for an argument variable
     Like  Bookmark
  • string to calender Ref. 比較早晚How do I get the currently displayed fragment? 是否同日Comparing two java.util.Dates to see if they are in the same day java判断两个点之间是否超过24小时or超过5分钟
     Like  Bookmark
  • The ACTION_OPEN_DOCUMENT_TREE intent action, available on Android 5.0 (API level 21) and higher, allows users to select a specific directory 主要的 intent request Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); Ref. Android Intent ACTION_OPEN_DOCUMENT_TREE android Q 使用 ACTION_OPEN_DOCUMENT_TREE 选择目录进行遍历文件夹下文件
     Like  Bookmark
  • Ref. How to get just the parent directory name of a specific file
     Like  Bookmark
  • Ref. Android中根据ID名动态获取资源的两个方法
     Like  Bookmark
  •  Like  Bookmark
  • Ref. An Android app remembers its data after uninstall and reinstall
     Like  Bookmark