標籤:
※Application
每次應用程式運行時,Application類保持執行個體化狀態,Application實現為一個單態(單例),擴充如:
import *;
public class MyApplication extends Application{
private static MyApplication singleton;
public static MyApplication getIntance(){
return singleton;
}
//建立應用程式是調用,執行個體化應用程式單態,建立和執行個體化狀態變數或共用資源
@Override
public final void onCreate(){
super.onCreate();
singleton = this;
}
//當系統處於資源匱乏的狀態時,清空緩衝和不必要資源
@Override
public final void onLowMemory(){
super.onLowMemory();
}
//當系統決定減少記憶體開銷時調用,包含一個level參數,永於提供請求上下文
@Override
public final void onTrimMemoy(int level){
super.onTrimMemoy(level);
}
@Override
//當應用程式使用的值依賴於特定的配置,重寫來重新載入這些值。
public final void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}
}
※最佳化布局
1.當包含有merge標籤的布局被添加到另一個布局是,該布局的merge會被刪除。
使用include標籤把包含於merge標籤的布局添加到另一個布局中,能夠建立靈活的,可複用的布局定義。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include android:id="@+id/my_image_text_layout"
layout="@layout/image_text_layout"
</LinearLayout>
image_text_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:gravity="center_horizontal"
android:layout_gravity="bottom"
/>
</merge>
2.避免使用多個View,布局包含的View個數不用改超過80。想要在複雜的布局內填充View
的數量較少,可以使用ViewStub。相當於一個延遲的include標籤,只有在顯示的調用inflate()方法或被置為可見時才會被填充。
View stub = findViewById(R.id.id_stub);
stub.setVisibility(View.VISIBLE);
View inStub = findViewById(R.id.id_in_stub)
ViewStub stub = (ViewStub) findViewById(R.id.viewstub_demo_text);
stub.inflate();
//layout屬性為需要填充的xml檔案。
<ViewStub
android:id="@+id/id_stub"
android:inflatedId="@+id/id_in_stub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/viewstub_layout"/>
初學_Android4進階編程-1 Application單例,及最佳化布局