出于某种原因,我想在我的asynctask函数中获取用户的电话信息。
这是我的asynctask代码
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;
}
}
错误消息显示“方法getWindowManager()未定义RequestTask类型。”
但我尝试导入我知道的所有内容...... 这个“getWeith()”函数可以用于我的mainactivity。 请帮助我,谢谢。
答案 0 :(得分:3)
您正在展开AsyncTask
,其中没有方法getWindowManager()。您需要访问定义了此方法的对象。
因此,请尝试将您的活动传递到RequestTask
对象,并在该活动上调用getWindowManager()
。
答案 1 :(得分:3)
错误原因
getWindowManager()
是Activity
上的方法而不是AsyncTask
,因此您将收到错误“方法getWindowManager()未定义RequestTask类型。”。
如何解决?
为了在AsyncTask中使用getSystemService()
来检索WindowManager
,请执行此任务。