Android 异步任务中的异常
我试图从parse.com数据库获取数据,但我的应用程序崩溃 这是我的密码Android 异步任务中的异常,android,Android,我试图从parse.com数据库获取数据,但我的应用程序崩溃 这是我的密码 private class RemoteDataTask extends AsyncTask<Void, Void, Void> { protected void onPreExecute() { super.onPreExecute(); // Create a progress dialog mProgres
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
super.onPreExecute();
// Create a progress dialog
mProgressDialog = new ProgressDialog(CategoryList.this);
// mProgressDialog.setCancelable(false);
mProgressDialog.setIndeterminate(false);
// Show progress dialog
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// TODO Auto-generated method stub
mylatlng = new LatLng(lat,lng);
ParseGeoPoint latlng = new ParseGeoPoint(mylatlng.latitude,
mylatlng.longitude);
try {
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
tableName);
ParseQuery<ParseObject> userQuery = new ParseQuery<ParseObject>(
"_User");
query.whereNear("shopLatLng", latlng);
results = query.find();
for (ParseObject obj : results) {
validityDate = obj.getDate("validity");
if (validityDate.compareTo(dateToday) > 0) {
Log.d("results", obj.toString());
map = new CategoryGridItem();
ParseFile itemImage = (ParseFile) obj.get("itemImage");
map.setItemImage(itemImage.getUrl());
map.setTitle((String) obj.get("couponTitle"));
Log.e("title", (String) obj.get("couponTitle"));
shopObjectId = (String) obj.get("userObject");
shopLatLng = (ParseGeoPoint) obj.get("shopLatLng");
map.setShopLatLng(new LatLng(shopLatLng.getLatitude(),
shopLatLng.getLongitude()));
map.setValidityDate((Date) validityDate);
Log.e("date", validityDate.toString());
userQuery.getInBackground(shopObjectId,new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object,ParseException e) {
// TODO Auto-generated method stub
ParseFile icon = (ParseFile) object.get("logo");
map.setShopName((String) object.get("shopName"));
Log.e("shopName",(String) object.get("shopName"));
map.setShopAddr((String) object.get("shopAddr"));
map.setIcon(icon.getUrl());
}
});
categoryItemList.add(map);
}
}
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result) {
adapter = new CategoryGridAdapter(CategoryList.this,categoryItemList);
gridView.setAdapter(adapter);
mProgressDialog.dismiss();
}
}
及
03-29 05:56:52.531:E/WindowManager(1541):Activity fragments.CategoryList已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@41035788原来是加在这里的
03-29 05:56:52.531:E/WindowManager(1541):android.view.WindowLeaked:Activity fragments.CategoryList已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@41035788原来是加在这里的
03-29 05:56:52.531:E/WindowManager(1541):在android.view.ViewRootImpl。(ViewRootImpl.java:374)
03-29 05:56:52.531:E/WindowManager(1541):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
03-29 05:56:52.531:E/WindowManager(1541):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
03-29 05:56:52.531:E/WindowManager(1541):在android.view.WindowManagerImplCompatModeWrapper.addView(WindowManagerImpl.java:149)
03-29 05:56:52.531:E/WindowManager(1541):在android.view.Window$LocalWindowManager.addView(Window.java:547)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.Dialog.show(Dialog.java:277)
03-29 05:56:52.531:E/WindowManager(1541):at fragments.CategoryList$RemoteDataTask.onPreExecute(CategoryList.java:86)
03-29 05:56:52.531:E/WindowManager(1541):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
03-29 05:56:52.531:E/WindowManager(1541):在android.os.AsyncTask.execute(AsyncTask.java:534)
03-29 05:56:52.531:E/WindowManager(1541):at fragments.CategoryList.onCreate(CategoryList.java:57)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.Activity.performCreate(Activity.java:5008)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.ActivityThread.access$600(ActivityThread.java:130)
03-29 05:56:52.531:E/WindowManager(1541):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-29 05:56:52.531:E/WindowManager(1541):位于android.os.Handler.dispatchMessage(Handler.java:99)
03-29 05:56:52.531:E/WindowManager(1541):在android.os.Looper.loop(Looper.java:137)
03-29 05:56:52.531:E/WindowManager(1541):位于android.app.ActivityThread.main(ActivityThread.java:4745)
03-29 05:56:52.531:E/WindowManager(1541):位于java.lang.reflect.Method.Invokenactive(本机方法)
03-29 05:56:52.531:E/WindowManager(1541):位于java.lang.reflect.Method.invoke(Method.java:511)
03-29 05:56:52.531:E/WindowManager(1541):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-29 05:56:52.531:E/WindowManager(1541):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-29 05:56:52.531:E/WindowManager(1541):在dalvik.system.NativeStart.main(本机方法)
更改此行
Log.e("title", (String) obj.get("couponTitle"));
对此
Log.e("title", obj.get("couponTitle").toString());
并在您尝试转换为字符串的位置执行相同的更改尝试此
删除Log.e(“错误”,e.getMessage())代码>从捕获
catch (Exception e) {
e.printStackTrace();
}
可能与CategoryList.java
中的行号157
重复。您的问题解决了吗?
Log.e("title", obj.get("couponTitle").toString());
catch (Exception e) {
e.printStackTrace();
}