android知識雜記(二)

來源:互聯網
上載者:User

標籤:

記錄項目中的android零碎知識點,用以備忘。

  • AsyncQueryHandler
    • 繼承與handler,可以用於處理增刪改(ContentProvider提供的資料)
    • 例如:query = new AsyncQueryHandler(getContentResolver()); 

      包括方法:startQuery、startInsert、startDelete、startUpdate:

      Uri uri = Sms.CONVESATION_URI; query.startQuery(0, null, uri, CONVERSATION_PROJECTION, null, null, "sms.date desc");
  • windowManager.addView
    • 可以實現懸浮窗,參數為兩個:前者為視圖、後者為參數,參數中的WindowManager.LayoutParams.type標示該彈出視圖的類型:
    • 比較常用的有:TYPE_SYSTEM_ALERT 系統提示。它總是出現在應用程式視窗之上
      TYPE_APPLICATION 普通應用功能程式視窗

    • 也可以在參數中給新增視圖添加動畫,用.windowAnimations = R.style.anim_view;同時在style.xml裡定義anim_vew

 

    <style name="anim_view">        <item name="@android:windowEnterAnimation">@anim/in</item> //在anim檔案夾中定義        <item name="@android:windowExitAnimation">@anim/out</item>    </style>

 

    • 部分手機,如小米對addview有約束(許可權控制),需要適配;
  • 手動開啟或影藏IME
    • EditText有焦點(focusable為true)阻止IME彈出 

editText=(EditText)findViewById(R.id.txtBody);        editText.setOnTouchListener(new OnTouchListener() {                         public boolean onTouch(View v, MotionEvent event) {                  editText.setInputType(InputType.TYPE_NULL); // 關閉軟鍵盤                      return false;            }        }); 
    • 當EidtText無焦點(focusable=false)時阻止IME彈出
InputMethodManager imm = 
(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    • 如果IME在視窗上已經顯示,則隱藏,反之則顯示
imm.toggleSoftInput(0,HIDE_NOT_ALWAYS);
    • IME是否單開
boolean isOpen=imm.isActive();//isOpen若返回true,則表示IME開啟
  • handler的removeMessages
    • handler 的removeMessages(int)應用,刪除msg.what = int的訊息。通常與sendMessageDelayed一起用。情境:比如處理按鍵頻繁操作。
  • ANR問題
    • 提示Application Not Responding,android提示使用者應用無響應,等待或者終止。
      在Android裡,應用程式的響應性是由Activity Manager和WindowManager系統服務監視的 。當它監測到以下情況時,會觸發ANR:
        1.在5秒內沒有響應輸入的事件
        2.BroadcastReceiver在10秒內沒有執行完畢
      這裡要注意的是啟動一個新的service處理下載,但下載任務仍然要單獨起,因為service也運行在主線程,能夠造成ANR問題。

  • Service or Thread
    • 表面上thread可以完成service的全部工作,還不存在阻塞UI的問題。但對Android來說,service的優先順序要
      高於後台掛起的activity,以及activity所建立的thread。因此,作為一個android的重要組件,它被用來執行背景工作。

  • Application應用
    • 可以在onCreate中實現一些整個APP的初始化任務,這個初始化只會被執行一次,比如廣播監聽
    • Application的生命週期即是Application本身,因此也可以在Application中儲存一些全域變數
  • .9.png
    • .9類型的圖片是android的一種特殊圖片格式,它支援隨意展開,這種展開不是簡單的像素擴大,而是會考慮圖片的內容
    • 在android中內建draw9patch.bat工具可以製作;

android知識雜記(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.