安卓中一些细节问题
Intent啟動activity的幾種方法,如何實現?
A:顯示跳轉,在可以引用到哪個類,并且可以引用到那個類的字節碼時可以使用。一般用于自己程序的內部。顯示跳轉不可以跳轉到其他程序的頁面中。
Intent?intent = ?new Intent(this,xxx.class);
startAcitvity(intent);
B:隱式跳轉,可以在當前程序跳轉到另一個程序的頁面。隱式跳轉不需要引用到那個類,必須知道那個界面的動作action和信息category。
打開瀏覽器為例:
Intentintent = new intent();
intent.setAction("android.intent.action.View"); ?設置動作
intent.addCategory("android.intent.category.BROWSABLE"); 設置參數
intent.setData(uri.parse("www.baidu.com"));
startActivity(intent); 啟動
什么是ANR,如何避免?
全名為(Application Not Response),應用程序在有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框。
?用戶可以選擇等待讓程序繼續運行,也可以選擇強制關閉。非常影響用戶的體驗。
產生原因:1.在5秒內沒有響應輸出事件(例如:按鍵按下,屏幕觸摸)
? ?2.BroadcastReceiver在10秒內沒有執行完畢
? ?3.主線程執行耗時操作
如何避免:不要在主線程里做耗時操作,而應放在子線程中實現,比如采用Handler+message的方式。和網絡交互的耗時操作就采用asyntask異步任務方式。
fragment和activity之間如何通信?
1.Fragment中通過getactivity進行強制轉化,調用activity中的共有方法(不推薦會影響屏幕的適配)
2.activity在切換fragment的時候,通過setarguments向fragment傳遞參數,fragment通過getarguments;獲得從activity中傳遞過來的值。
3.activity實現一個接口,fragment在onAttach方法中,將該activity轉化成接口,調用的時候回調
總結
- 上一篇: AIDL简介
- 下一篇: 电脑显示器无信号怎么办 电脑屏幕黑屏?怎