java - android中的AsyncTaskLoader函数错误
问题描述
我的应用程序出现运行错误,错误出现在(LoadManager.loaderCallbacks)中 我能做些什么来解决它!谢谢你的帮助..
主要活动:
package com.example.myapplication;
import android.app.LoaderManager;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.Loader;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements LoaderCallbacks<List<Info>> {
public static final String LOG_TAG = MainActivity .class.getName();
public List<Info> earthquakes = new ArrayList<>() ;
EarthAdapter<Info> earthAdapter ;
public final String URL_NAME = "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&orderby=time&minmag=6&limit=10";
private static final int ID=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView earthquakeListView = (ListView) findViewById(R.id.list);
earthAdapter = new EarthAdapter<>(this,new ArrayList<Info>());
earthquakeListView.setAdapter(earthAdapter);
earthquakeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Info info= earthAdapter.getItem(position);
Uri uri = Uri.parse(info.getUrl());
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
});
/*EarthquakeAsync earthquakeAsync = new EarthquakeAsync();
earthquakeAsync.execute(URL_NAME);*/
LoaderManager loaderManager =getLoaderManager();
loaderManager.initLoader(ID,null,this);
}
@Override
public Loader<List<Info>> onCreateLoader(int id, Bundle args) {
Log.e(LOG_TAG,"onCreateLoader");
EarthquakeLoader earthquakeLoader = new EarthquakeLoader(MainActivity.this,URL_NAME);
return earthquakeLoader;
}
@Override
public void onLoadFinished(Loader<List<Info>> loader, java.util.List<Info> infos) {
Log.e(LOG_TAG,"onLoadFinished");
earthAdapter.clear();
if (infos != null && !infos.isEmpty()) {
earthAdapter.addAll(infos);
}
}
@Override
public void onLoaderReset(Loader<List<Info>> loader) {
Log.e(LOG_TAG,"onLoaderReset");
earthAdapter.clear();
}
加载器.java
package com.example.myapplication;
import android.content.Context;
import android.support.annotation.Nullable;
import android.content.AsyncTaskLoader;
import android.util.Log;
import java.util.List;
class EarthquakeLoader extends AsyncTaskLoader<List<Info>> {
static final String TAG_NAME=EarthquakeLoader.class.getName();
String url;
public EarthquakeLoader(Context context, String url) {
super(context);
this.url=url;
}
@Nullable
@Override
public List<Info> loadInBackground() {
Log.e(TAG_NAME,"loadInBackground");
if (url!= null) {
return null;
}
List<Info> earthquakes = QueryUtils.earthquakesAsync(url);
return earthquakes;
}
@Override
protected void onStartLoading() {
Log.e(TAG_NAME,"onStartLoading");
forceLoad();
}
}
堆栈跟踪:
02-18 17:44:52.744 1767-1775/com.google.android.gms W/SQLiteConnectionPool: A SQLiteConnection object for database '/data/data/com.google.android.gms/databases/networkstatistics.sqlite' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
02-18 17:44:52.794 1767-2060/com.google.android.gms D/AuthZenTransactionCache:初始化缓存在:/data/data/com.google.android.gms/files 02-18 17:44:52.794 1767 -2060/com.google.android.gms D/AuthZenTransactionCache: Clearing transaction cache 02-18 17:44:53.054 1767-2019/com.google.android.gms I/FA-SVC: App测量正在启动,版本: 9256 02-18 17:44:53.054 1767-2019/com.google.android.gms I/FA-SVC:启用调试日志运行:adb shell setprop log.tag.FA VERBOSE 02-18 17:44:53.154 1767 -2130/com.google.android.gms V/FA-SVC:将服务启用状态更新为:1 02-18 17:44:53.154 1767-2130/com.google.android.gms I/FA-SVC:此实例被标记为上传者
解决方案
推荐阅读
- python-3.x - 如何修复我的代码,因为它显示 NZEC 错误
- laravel - 找不到类“ConsoleTVs\Charts\ChartsServiceProvider”
- r - 如何解决自定义函数计数不起作用
- javascript - 如何通过单击每个链接进行循环并验证每个页面上的相同元素?
- css - 提交后 -> 如果字段出错,则滚动偏移
- python - 只有一个“打开文件为 f”,基于条件
- swift - 如何在 SwiftUI 中使用计时器更新文本
- angular - 我不知道为什么我会以角度收到此消息:“错误类型错误:无法设置未定义的属性‘位置’”
- docker - 了解为什么需要为 docker0 上的容器间通信公开端口
- python - 这个归并排序算法有什么问题?