这是由SherlockListFragment(在TabSwipe内)和AsyncTask doInBackground引起的。无法暂停活动 - nullpointerexception
点击一个列表项目开始生成一个大的可分类项目,当完成后,它应该移动到一个新的活动(在TabSwipe容器之外),将该可分类作为一个Bundle传递。
这里是异步代码:
public class BackgroundSetUpReportData extends AsyncTask<Integer, Integer, PainReport_Holder> {
// declare the dialog
ProgressDialog progressDialog;
// show the dialog
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setCancelable(false);
progressDialog
.setMessage("Building Summary:\nThis may take some time.\nPlease wait...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgress(0);
progressDialog.show();
}
@Override
protected PainReport_Holder doInBackground(Integer... params) {
DataLayer d = new DataLayer(getActivity().getBaseContext());
//lots of adding to the PRH class
return PRH;
}
// update the progress dialog
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
// show the data
protected void onPostExecute(PainReport_Holder result) {
// hide the dialog
progressDialog.dismiss();
moveToActivity();
}
}
public void moveToActivity() {
Bundle b = new Bundle();
b.putParcelable("SummaryData", PRH);
b.putString("fromDate", fromDate);
b.putString("toDate", toDate);
Intent i = new Intent(getActivity(), my_new.class);
i.putExtras(b);
startActivity(i);
}
总类:
public class myClassFragment extends SherlockListFragment {
这移到片段之前完美工作,并且仍然工作正常,直到我们得到了startActivity(我)lineTo moveToActivity();它抛出这个错误:传递
数据05-01 23:41:39.906: E/AndroidRuntime(25684): FATAL EXCEPTION: main
05-01 23:41:39.906: E/AndroidRuntime(25684): java.lang.RuntimeException: Unable to pause activity {[app]/[app].[class]}: java.lang.NullPointerException
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2358)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2315)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2295)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.access$1700(ActivityThread.java:117)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.os.Handler.dispatchMessage(Handler.java:99)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.os.Looper.loop(Looper.java:130)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.main(ActivityThread.java:3687)
05-01 23:41:39.906: E/AndroidRuntime(25684): at java.lang.reflect.Method.invokeNative(Native Method)
05-01 23:41:39.906: E/AndroidRuntime(25684): at java.lang.reflect.Method.invoke(Method.java:507)
05-01 23:41:39.906: E/AndroidRuntime(25684): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-01 23:41:39.906: E/AndroidRuntime(25684): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-01 23:41:39.906: E/AndroidRuntime(25684): at dalvik.system.NativeStart.main(Native Method)
05-01 23:41:39.906: E/AndroidRuntime(25684): Caused by: java.lang.NullPointerException
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.Activity.performSaveInstanceState(Activity.java:1037)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1181)
05-01 23:41:39.906: E/AndroidRuntime(25684): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2340)
05-01 23:41:39.906: E/AndroidRuntime(25684): ... 12 more
其他研究我已经做了建议空条目,但我已经检查在调试公屋类,并有内它没有空。
UPDATE
我已经通过的AsyncTask踩线,并出现在被抛出ClassNotFound的异常:
Intent i = new Intent(getActivity(), my_new.class);
凡 '未发现' 类my_new.class,这肯定存在。事实上,如果我添加
getActivity().finish();
前
startActivity(i);
那么它工作正常,但通话活动在后面堆栈不再。
澄清;父是
public class myTabsActivity extends TabSwipeActivity {
TabSwipeActivity是
public abstract class TabSwipeActivity extends SherlockFragmentActivity {
和我处理这个片段
public class myClassFragment extends SherlockListFragment {
上午我从片段缺少的器具可能?
你能发布这个活动和片段的完整代码吗? – Gustek 2013-05-02 23:53:33