android - 如何在 Asynctask 中实现 getWindowManager()?

标签 android android-asynctask window-managers

出于某种原因,我想在我的 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()”函数可以在我的主要 Activity 上工作。 请帮助我,谢谢。

最佳答案

Reason for error

getWindowManager()Activity 上的方法,而不是 AsyncTask 上的方法,因此您将收到错误“The method getWindowManager() is undefined对于类型 RequestTask。”。

How to fix it?

为了在 AsyncTask 中获取此方法,请使用 getSystemService() 检索 WindowManager 然后执行任务。

查看此 documentation of WindowManager

关于android - 如何在 Asynctask 中实现 getWindowManager()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178979/

相关文章:

android - 在 XML 中连接多个字符串?

linux - 有没有一种标准方法可以知道窗口是 float 的还是平铺的?

java - 如何在 Wi-Fi 中的设备之间同步数据

android - 以编程方式启用/禁用 Activity

java - Recyclerview 和 Rest Api

android:使用在 MainActivity 的 AsyncTask 中创建的 arrayadapter<Custom object>

macos - "window compositor"(WindowServer 进程)在 Mac OS X(和 iOS)中是如何实现的?

linux - 如何在 Arch Linux 中安装 dwm

android - OS X 10.9 升级后 Android Studio 项目出现问题,cacerts 出错

android - 如何将数据从 Activity 的异步任务传递到 fragment