編輯:關於Android編程
為了證實結論正確,我們新建一個Activity命名為Fisrt,並重寫上述7個方法。並在每個方法中打印出當前調用的方法。代碼如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("First onCreate");
}
@Override
protected void onStart() {
System.out.println("First onStart");
super.onStart();
}
@Override
protected void onResume() {
System.out.println("First onResume");
super.onResume();
}
@Override
protected void onPause() {
System.out.println("First onPause");
super.onPause();
}
@Override
protected void onStop() {
System.out.println("First onStop");
super.onStop();
}
@Override
protected void onRestart() {
System.out.println("Fisrt onRestart!");
super.onRestart();
}
@Override
protected void onDestroy() {
System.out.println("First onDestory!");
super.onDestroy();
}
現在我們首次啟動Activity發現輸出為:
First onCreate
First onStart
First onResume
當我們點擊Home,回到主界面時,輸出為:
First onPause
First onStop
在點擊程序,回到程序,輸出為
First onRestart
First onStart
First onResume
在點擊back,輸出為
First onPause
First onStop
Fisrt onDestory
上述輸出可以明顯看出啟動過程,就不多敘述了。
這裡創建兩個Activity,分別為First和Second,2個以上的,其實都是一樣的。
我們在第一個activity中添加了個button,當點擊button時,使用Intent跳轉到Second,
跳轉代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("First onCreate");
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
怎麼添加Button控件,就不闡述了。
下面我們啟動應用程序,即進入到了first activity中。根據2所說,輸出順序應該為:
first onCreate
first onStart
first onResume
然後我們點擊Button跳轉到second activity中,輸出為:
first onPause
second onCreate
second onStart
second onResume
first onStop
這時候活動的為second activity,所以此時進行home操作,和上面的一樣。
如果我們這時點擊了back退回到,則輸出為
second onPause
first onRestart
first onStart
first onResume
second onStop
second onDestory
這時second activity已經destroy掉了,如果再進入就不是和上面的一樣了,而是重新創建一個新的Activity了,再次跳轉到second activity,則輸出為:
first onPause
second onCreate
second onStart
second onResume
first onStop
上面的程序輸出已經把調用順序,解釋的很清楚了。建議大家,自己重載那7個函數,然後自己啟動,實驗一下增加下理解。
網上開源項目:https://github.com/beworker/pinned-section-listview,該項目用的是ArrayAdapter()..不太適合
安卓5.0Lollipop發布以來VectorDrawable作為安卓環境下的矢量化圖形的方式一直由於兼容性問題而很少被用到,由於只能用於5.0以上系統,導致現在多少安卓
Service 是Android四大組件之一,通常是在後台運行的,執行一些耗時的操作。對於Service 我們需要掌握的知識點有:1、Service 的生命周期2、Ser
shape用於設定形狀,可以在selector,layout等裡面使用,有6個子標簽,各屬性如下: <?xml version=1.0 enco