android中异步任务的垃圾收集器过多

android中异步任务的垃圾收集器过多,android,performance,logging,memory-management,Android,Performance,Logging,Memory Management,我试图使用URL下载json对象,为此我创建了一个AsyncTask。每当我启动应用程序时,都会启动过多的垃圾收集器。我不能理解我哪里出错了。我没有执行任何高内存使用任务,只是试图调用api来响应json main活动代码: public class MainActivity extends AppCompatActivity { public class DownloadTask extends AsyncTask<String,Void,String>{ @Over

我试图使用URL下载json对象,为此我创建了一个AsyncTask。每当我启动应用程序时,都会启动过多的垃圾收集器。我不能理解我哪里出错了。我没有执行任何高内存使用任务,只是试图调用api来响应json

main活动代码:

public class MainActivity extends AppCompatActivity {


public class DownloadTask extends AsyncTask<String,Void,String>{

    @Override
    protected String doInBackground(String... urls) {

        String result=null;
        URL url;
        HttpURLConnection httpURLConnection=null;

        try {
            url= new URL(urls[0]);
            httpURLConnection= (HttpURLConnection) url.openConnection();
            InputStream inputStream= httpURLConnection.getInputStream();
            InputStreamReader inputStreamReader= new InputStreamReader(inputStream);
            int data= inputStreamReader.read();
            while(data !=1){
                char current= (char) data;
                result +=current;
                data= inputStreamReader.read();
            }
            return result;

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        Log.i("webssite Content :",result);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    DownloadTask downloadTask= new DownloadTask();
    downloadTask.execute("http://api.openweathermap.org/data/2.5/weather?q=London&appid=5868b18238384fb4bdb3123jn9f0847cc");
}}
public类MainActivity扩展了AppCompatActivity{
公共类DownloadTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串结果=null;
网址;
HttpURLConnection HttpURLConnection=null;
试一试{
url=新url(url[0]);
httpURLConnection=(httpURLConnection)url.openConnection();
InputStream InputStream=httpURLConnection.getInputStream();
InputStreamReader InputStreamReader=新的InputStreamReader(inputStream);
int data=inputStreamReader.read();
while(数据!=1){
当前字符=(字符)数据;
结果+=电流;
data=inputStreamReader.read();
}
返回结果;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
Log.i(“网站内容:”,结果);
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask DownloadTask=新的DownloadTask();
下载任务。执行(“http://api.openweathermap.org/data/2.5/weather?q=London&appid=5868b18238384fb4bdb3123jn9f0847cc");
}}
Logcat

06-19 08:45:57.149 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 3ms, total 3ms
06-19 08:45:57.149 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720030-byte allocation
06-19 08:45:57.149 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 6ms, total 6ms
06-19 08:45:57.159 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 5ms, total 5ms
06-19 08:45:57.159 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 3ms, total 3ms
06-19 08:45:57.159 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720034-byte allocation
06-19 08:45:57.159 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 3ms, total 3ms
06-19 08:45:57.169 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 3ms, total 3ms
06-19 08:45:57.169 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 2ms, total 2ms
06-19 08:45:57.169 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720036-byte allocation
06-19 08:45:57.179 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 4ms, total 4ms
06-19 08:45:57.179 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 3ms, total 3ms
06-19 08:45:57.189 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 7ms, total 7ms
06-19 08:45:57.189 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720040-byte allocation
06-19 08:45:57.189 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 3ms, total 3ms
06-19 08:45:57.199 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 2ms, total 2ms
06-19 08:45:57.199 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 3ms, total 3ms
06-19 08:45:57.199 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720042-byte allocation
06-19 08:45:57.199 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 3ms, total 3ms
06-19 08:45:57.209 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 3ms, total 3ms
06-19 08:45:57.219 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 5ms, total 5ms
06-19 08:45:57.219 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720046-byte allocation
06-19 08:45:57.229 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 4ms, total 4ms
06-19 08:45:57.229 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 2ms, total 2ms
06-19 08:45:57.239 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 5ms, total 5ms
06-19 08:45:57.239 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720048-byte allocation
06-19 08:45:57.239 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 4ms, total 4ms
06-19 08:45:57.249 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 4ms, total 4ms
06-19 08:45:57.249 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 5ms, total 5ms
06-19 08:45:57.249 6269-6283/com.hemkar.jsondemo I/dalvikvm-heap: Grow heap (frag case) to 5.091MB for 720052-byte allocation
06-19 08:45:57.259 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 468K, 24% free 4672K/6144K, paused 5ms, total 5ms
06-19 08:45:57.259 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed 1172K, 36% free 3969K/6144K, paused 3ms, total 3ms
06-19 08:45:57.269 6269-6283/com.hemkar.jsondemo D/dalvikvm: GC_FOR_ALLOC freed <1K, 28% free 4438K/6144K, paused 8ms, total 8ms
06-19 0

06-19 08:45:57.149 6269-6283/com.hemkar.jsondemo D/dalvikvm:GC_FOR_ALLOC freed我认为,因为在你的代码while(data!=1)中,correct应该是while(data!=-1)。循环是无限的

您是使用真实设备还是仅使用虚拟设备进行了尝试?我使用emulator进行了尝试,您的意思是它在真实设备中可以正常工作?我同意,如果到达流的末尾,则返回read()返回-1。