Search code examples
androidandroid-asynctaskwindow-managers

How do I implement getWindowManager() in Asynctask?


For some reason, I want to get user's phone information in my asynctask function.

here is my asynctask code

package com.example.myfirstapp;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.AsyncTask;
import android.util.DisplayMetrics;
import android.util.Log;
public class RequestTask extends AsyncTask<String, String, String>{
@Override

protected String doInBackground(String... uri) {
    ...my code
}



@Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);
    //Do anything with response..
}

private  String getWeith(String url) {  
    DisplayMetrics dm = new DisplayMetrics();  
    getWindowManager().getDefaultDisplay().getMetrics(dm);  
    int width = dm.widthPixels;
    int height = dm.heightPixels;  
    String w=new String(""+width);
    String h=new String(""+height);
    url=url+"&23=w%3A"+w+"%20h%3A"+h+"%20d%3A"; 
    return url;
}  
}

error message show that "The method getWindowManager() is undefined for the type RequestTask."

but I've try to import everything I know... And this "getWeith()" function can work on my mainactivity. Please help me, thanks.


Solution

  • Reason for error

    getWindowManager() is a method on Activity not on an AsyncTask so you will get the error "The method getWindowManager() is undefined for the type RequestTask.".

    How to fix it?

    In order to get this method inside AsyncTask use getSystemService() to retrieve a WindowManager then do you task.

    See this documentation of WindowManager