activity的一種精彩的啓動方式

啓動活動的最佳寫法
啓動活動的方法相信你已經非常熟悉了,首先通過 Intent 構建出當前的“意圖”,然後
調用 startActivity()或 startActivityForResult()方法將活動啓動起來,如果有數據需要從一個活
動傳遞到另一個活動,也可以藉助 Intent來完成。
假設 SecondActivity 中需要用到兩個非常重要的字符串參數,在啓動 SecondActivity 的
時候必須要傳遞過來,那麼我們很容易會寫出如下代碼:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("param1", "data1");
intent.putExtra("param2", "data2");
startActivity(intent);
這樣寫是完全正確的,不管是從語法上還是規範上,只是在真正的項目開發中經常會有
對接的問題出現。比如 SecondActivity並不是由你開發的,但現在你負責的部分需要有啓動
SecondActivity 這個功能,而你卻不清楚啓動這個活動需要傳遞哪些數據。這時無非就有兩
種辦法,一個是你自己去閱讀 SecondActivity 中的代碼,二是詢問負責編寫 SecondActivity
的同事。你會不會覺得很麻煩呢?其實只需要換一種寫法,就可以輕鬆解決掉上面的窘境。
修改 SecondActivity中的代碼,如下所示:
public class SecondActivity extends BaseActivity {
public static void actionStart(Context context, String data1, String data2) {
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra("param1", data1);
intent.putExtra("param2", data2);
context.startActivity(intent);
}

}


我們在 SecondActivity中添加了一個 actionStart()方法,在這個方法中完成了 Intent的構
建,另外所有 SecondActivity中需要的數據都是通過 actionStart()方法的參數傳遞過來的,然
後把它們存儲到 Intent 中,最後調用 startActivity()方法啓動 SecondActivity。
這樣寫的好處在哪裏呢?最重要的一點就是一目瞭然,SecondActivity 所需要的數據全
部都在方法參數中體現出來了,這樣即使不用閱讀 SecondActivity中的代碼,或者詢問負責
編寫 SecondActivity 的同事,你也可以非常清晰地知道啓動 SecondActivity 需要傳遞哪些數

據。另外,這樣寫還簡化了啓動活動的代碼,現在只需要一行代碼就可以啓動 SecondActivity,
如下所示:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SecondActivity.actionStart(FirstActivity.this, "data1", "data2");
}
});
養成一個良好的習慣,給你編寫的每個活動都添加類似的啓動方法,這樣不僅可以讓啓
動活動變得非常簡單,還可以節省不少你同事過來詢問你的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章