AndroidNetworkWatcher:ネットワーク監視サービスコードを簡素化

序文

Androidの開発者は、多くの場合、シナリオは、このような演奏のようにネットワークの変更を監視する必要が発生した、例えば、今日のAndroidNetworkWatcher持つようにネットワークは、ネットワークへのアクセスを要求します持ち去ら。

プロジェクトアドレス

AndroidNetworkWatcher:github.com/xiong-it/An...

技術的な原則

主な変更点は、ブロードキャストネットワークに耳を傾けることで、ネットワークの変更は、ネットワークの変更を通知したときに、ビジネス層のコードを呼び出す、カプセル化、および注釈は、ランタイムを定義しています。

使い方

いないリモートのGradle依存により、jcenterするアップロードされませんので、読者は自分のローカルソースが依存ダウンロード、または参照元、独自のパッケージすることができます。

  1. アプリケーションの初期化ウォッチャーには:
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        NetworkStateWatcher.getDefault().init(this);
    }
}
复制代码
  1. 活動の例に登録オブザーバー
@Override
protected void onStart() {
    super.onStart();
    // 注册网络监听,传入Object类型参数
    NetworkStateWatcher.getDefault().registerObserver(this);
}
复制代码
  1. 活動の例にキャンセルオブザーバー
@Override
    protected void onStop() {
        super.onStop();
        // 注销网络监听,传入Object类型参数
        NetworkStateWatcher.getDefault().unRegisterObserver(this);
    }
复制代码
  1. ネットワークの変化の関数の定義を受け取る(2つの方法)

    4.1最初:すべてのネットワークの変更に耳を傾けます

    /**
     * 网络发生变化
     *
     * @param type 网络类型
     */
    @NetworkStateChanged(notifyOnAppStart = false)
    void onNetworkStateChanged(int type) {
        switch (type) {
            case NetworkTypeEnum.NETWORK_2G:
            case NetworkTypeEnum.NETWORK_3G:
            case NetworkTypeEnum.NETWORK_4G:
                // 切换到移动网络
                break;
    
            case NetworkTypeEnum.NETWORK_WIFI:
                // 切换到wifi
                break;
    
            case NetworkTypeEnum.NETWORK_NO:
                // 断网
                break;
        }
    }
    复制代码

    4.2秒:特定のネットワーク変更を監視

    // 监听网络切换到wifi
    @OnNetworkTypeChangedTo(type = NETWORK_WIFI)
    void onWifiConnected() {
        Toast.makeText(  this, "NetworkStateChanged>>>WIFI", Toast.LENGTH_SHORT).show();
    }
    
    // 监听网络切换到移动网络
    @OnNetworkTypeChangedTo(type = NetworkTypeEnum.NETWORK_MOBILE)
    void onMobileNetworkConnected() {
        Toast.makeText(this, "NetworkStateChanged>>>Mobile networks", Toast.LENGTH_SHORT).show();
    }
    复制代码
  2. あなたはネットワーク監視アプリ、すなわちonDestroyアプリスタック方式活動活動のメインインタフェースにおけるネットワーク監視アプリの最後の停止を終了すると、libには、ブロードキャストネットワークに耳を傾ける停止償却されます。

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 在app主界面/栈中最后一个Activity停止网络监听
        NetworkStateWatcher.getDefault().stopWatch();
    }
    复制代码

エピローグ

無駄な技術、ビューア、注釈、反射、背の高いものにラジオ受信機。何よりも、それはあなたと私を容易にするために、ビジネス層のコードを合理化することができます。AndroidNetworkWatcher:github.com/xiong-it/An ...

// TODO

  1. Jcenterは、リモートのGradleの依存促進するために、倉庫にアップロード
  2. さらにサービスコードまたはtranformの使用を簡素化する傾向
  3. コレクション発行意見
  4. 議論へようこそ交換

おすすめ

転載: juejin.im/post/5da8254e5188252fac2c784f