非ActivityクラスでgetContentResolver()メソッドを呼び出す方法

1137 ワード

前にも言ったように、自分はAndroidの開発についてあまり経験がないので、しばらくは電気が書けないかもしれません.意外にも今日书いたことがあって、実は主にやはり実际の仕事から来て、仕事の中で问题に出会って、自分で决められないで、ネット上で资料を探して、探して探して最后にこの问题を理解しました.
今日の作業では、Activity以外のクラスでgetContentResolverメソッドを呼び出す必要があるという問題に遭遇しました.その时、私は以前Activityの中の方法に従って淡々と呼び出して、それからコンパイルする时システムも淡々と私に教えて、ここは间违っています.まあ、自分はAndroidについてよく知っているので、ネットで資料を探すしかありません.
自分の習慣に従って、まずAndroidの公式サイトに来て検索して、Android Developersの出した答えもとても簡潔です:この方法はContextのpublic abstract ContentResolver getContentResolver()方法に属して、作用もとても単調で、1つのContentResolverの実例に戻ります.実は、この方法がContextに属していることを発見してから、私の心の中には多分スペクトルがあって、あまり確定していませんが、自分のわずかな経験から見ると、Context累中の方法は一般的にActivityの中で直接使うことができますが、他の場所では、別です.
実際には、通常のクラスでgetContentResolver()メソッドを使用するには、Contextのインスタンスを渡すことが重要です.Contextがあれば、すべてが言えます.簡単です.このクラスでメソッドを構築し、Contextインスタンスを取得すればいいです.
    private Context context;
    
    public transContext(Context context) {
        this.context = context;
    }

クラスに追加するコードは基本的にこれだけで、getContentResolver()メソッドを呼び出す必要がある場所にcontextを直接書きます.getContentResolver()では、ContentResolverのインスタンスを取得できます.
この問題は少し経験のある無量閣電子書籍の老鳥にとって問題ではないかもしれないが、自分がAndroidを勉強している間の小さな記録だと思っているだろう.