Activity を継承していないクラスのメソッドに、現在の Activity の参照を渡したい。使用できるように、アクティブなアクティビティへのこの参照を使用する必要がありますgetWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
クラスで次のセッター メソッドを使用して、現在のコンテキストとアクティビティの両方をクラス オブジェクトに渡します。
public class VersionCheck {
public Context context;
public Activity activity;
//---------------------------------------------------------------------------------------------------------
//set the current context
//---------------------------------------------------------------------------------------------------------
public void setContext(Context context) {
this.context = context;
}
//---------------------------------------------------------------------------------------------------------
//set the current activity
//---------------------------------------------------------------------------------------------------------
public void setActivity(Activity activity) {
this.activity = activity;
}
アクティビティへの参照は、クラスの AsyncTask で使用されます (以下の抜粋)。
//---------------------------------------------------------------------------------------------------------
//asynchronous task to check if there is a newer version of the app available
//---------------------------------------------------------------------------------------------------------
private class UpdateCheckTask extends AsyncTask<String, Void, String> {
HttpClient httpclient;
HttpPost httppost;
HttpResponse response;
InputStream inputStream;
byte[] data;
StringBuffer buffer;
protected void onPreExecute ()
{
VersionCheck vc = new VersionCheck();
//do not lock screen or drop connection to server on login
activity.getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
//initiate progress dialogue to block user input during initial data retrieval
ProcessingDialog = ProgressDialog.show(context, "Please Wait", "Checking for Updates", true,false);
}
@Override
protected String doInBackground(String... currentVersion)
{
アクティビティへの参照を取得して setActivity(Activity) メソッドに渡すにはどうすればよいですか? コンテキストの参照として myActivity.this を使用します。アクティビティも同じですか?