簡體   English   中英

Android:幾個共享公共代碼的活動

[英]Android : Several activities sharing common code

我有一個由幾個活動組成的Android應用程序。 他們中的大多數人需要檢查活動網絡是否可用:

public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    ...
}

我想將該代碼移動到輔助類,以避免在每個Activity中編寫該代碼,但只允許從Activity調用getSystemService

另一種方法是將該代碼移動到父活動使用繼承,但是:

  1. 每個活動都已經從android.app.Activity擴展
  2. 我的一些活動已經從常見的my.package.BaseActivity擴展(Activity < - BaseActivity < - XXXActivity)

所以我不太喜歡這個想法。

在這種情況下你會推薦什么? 還有其他選擇嗎?

好吧,您仍然可以創建一個輔助類並將活動的引用傳遞給它。

public boolean isNetworkAvailable(Context c) {
    ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager tm = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
    ...
}

getSystemService是一個公共方法,因此它應該在Activity范圍之外工作。

您可以通過這樣調用它來傳遞它:

helperClassObj.isNetworkAvailable(YourActivity.this);

希望這對你有用。

你不能只使用作文嗎? 使用您的邏輯定義一個類,然后將該類或其實例放入需要該方法的類中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM