啟動 Activity 的更佳寫法

要啟動一個 Activity,我們以前是這樣寫

Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code language: JavaScript (javascript)

大家有沒有想過,並不是每個 Activity 都是你負責開發的

這時候,如果我想啟動另一個 Activity,可能就得詢問負責該 Activity 的同事或是查閱文件。

可是這樣是不是很麻煩?

有什麼解決辦法嗎?

能不能把啟動 Activity 的工作交給另一位同事處理?

也就是每個 Activity 的開發者,在該 Activity 裡新增一個方法,讓其他人呼叫這個方法來開啟 Activity。

Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//在我們自己的 Activity 裡啟動其他 Activity
//我們需要知道其他 Activity 需要什麼資料,所以得跟該 Activity 的開發人員溝通
startActivity(it);Code language: JavaScript (javascript)

接下來我們試試看,在目標 Activity 新增一個靜態方法

//將啟動 Activity 的程式碼寫在該 Activity 的類別內
public static void actionStart(Context context, String site, int level)
{
    Intent it = new Intent(context,NormalActivity.class);
    it.putExtra("site",site);
    it.putExtra("level",level);
    context.startActivity(it);
}Code language: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code language: CSS (css)

啟動 Activity 的更佳寫法

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *