2011-09-14 10 views
1

は、私がコードを使用しています:非アクティビティクラスでGetSystemService DOWNLOAD_SERVICE非アクティビティクラスで私の簡単な方法で

mgr=(DownloadManager)mContext.getSystemService(DOWNLOAD_SERVICE); 

を、私のコンストラクタは次のようになります。

public Download23(Context context){ 
    this.mContext=context; 
} 

しかしcompilator「を受賞しましたDOWNLOAD_SERVICE文字列を受け入れません。あなたはそれを解決する方法を知っていますか?

答えて

1

いますが、非アクティビティクラス

に活動を渡すことができActivityclass.java

public static Activity mAct; 

onCreate() 
{ 
mAct=this; 
} 

NonActivityclass.java

public Download23(){ 
    mgr=(DownloadManager)Activityclass.mAct.getSystemService(DOWNLOAD_SERVICE); 
} 

を願っていますが、私が何を意味するかだ

+0

これは、アクティビティとしてmActにアクセスし、getSystemServiceを呼び出すことができます。これにアクセスできるようにmAct.DOWNLOAD_SERVICEを書くだけでいいです。 – user387184

+0

@hotveryspicy:私は1つの質問がありますNonActivityclassにActivityクラスを作成する必要があることを意味しますか?次のように:public static class Activtyclassはアクティビティを拡張します{ \t \t public static Activity mAct; \t公共ボイドのonCreate() \t {\t MACT =この; Broadcastreceiverクラスの \t} }。それは正しい? – Shweta

+0

これはメモリリークを作成します。 –

10

代わりに、書くことができるだけ

(DownloadManager)mContext.getSystemService(Context.DOWNLOAD_SERVICE); 

これはコンパイルされます。

DOWNLOAD_SERVICEは、Contextクラスの定数です。

+0

+1選択した回答よりもはるかにクリーン – CtrlX

関連する問題