初學_Android4進階編程-1 Application單例,及最佳化布局

來源:互聯網
上載者:User

標籤:


※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單例,及最佳化布局

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.