編輯:關於Android編程
一、出現applicationno response 原因:
1、原因:
①、activity是在主線程裡面被創建的,
activity裡面的按鈕控件的點擊事件,
界面的顯示 view對象內容的更改,
這些操作都是運行在主線程裡面的.
主線程還處理Window.Callback, KeyEvent.Callback,
與窗體相關顯示的回調函數, 還處理了與點擊,鍵盤
等相關的點擊事件.
所以當主線程阻塞久了就不能響應其他操作,就會報anr(application no response)異常。
二、為了避免應用程序出現anr的異常:
1.耗時的操作都不能放在主線程裡面執行,要放在子線程中執行,這些操作。
如以下操作:
拷貝大的文件. 100M
訪問網絡的操作
阻塞式的請求. udp socket
例:
public class AnrActivityextends Activity {
public void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
//按鈕的點擊事件:
public void click(View view){
newThread(){ //創建子線程:
public void run() {
System.out.println("睡眠10秒鐘");
System.out.println(Thread.currentThread().getName());
//當前線程睡眠10秒鐘
try {
Thread.currentThread().sleep(10000);
}catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
}
Activity中有7個與生命周期有關的函數。其中onCreated()是activity第一次被啟動時執行的,主要是初始化一些變量,onRestart()是
Android的內存優化是性能優化中很重要的一部分,而避免OOM又是內存優化中比較核心的一點。這是一篇關於內存優化中如何避免OOM的總結性概要文章,內容大多都是和OOM有
在android開發中,如果在一個線程中想更新主界面中控件顯示的數據,直接給主界面控件賦值就會出現異常,android中為了安全起見,是不允許在線程中更新界面控件的數據,
目前很多app都會有短視頻內容,這裡就來講一下android中播放視頻的幾種方式。Android播放視頻有三種方式:1,調用系統已有的播放軟件播放視頻。2,使用andro