0

これは一般的に私が持っているものです:

class A extends Activity{
  // On a click, starts service B.
}

class B extends IntentService{
    C c = new C();
    c.init();
}

class C {
    public void init(){
        // Read a file from the /raw directory.
    }
}

インターネットで検索を行ったところ、getAssets を使用すると書かれているリソースがたくさん見つかりました。ただし、C はアクティビティを拡張しないため、A のコンテキストを表示できないため、これを行うことはできません。私はそれを伝えようと考えましたが、A は B 自体ではなく Class オブジェクトに対して startService を実行するため、それを行うことはできません。これを簡単に行う方法はありますか (できれば raw/ フォルダーのダーン URL を取得する)、またはこれを機能させるために Java マジックを実行する必要がありますか? 前もって感謝します。

4

1 に答える 1

0

クラスCにあなたIntentServiceを渡すだけです...this

class B extends IntentService{
    C c = new C();
    c.init(this);
}

class C {
    public void init(Context context){
        // Use the context parameter to access your resources here
        // Read a file from the /raw directory.
    }
}
于 2012-06-28T17:02:00.747 に答える