Android 使用TabLayout和ViewPager挂起嵌套片段中的所有线程,应用程序将在没有任何崩溃对话框的情况下关闭
有一个Android 使用TabLayout和ViewPager挂起嵌套片段中的所有线程,应用程序将在没有任何崩溃对话框的情况下关闭,android,android-fragments,android-tablayout,Android,Android Fragments,Android Tablayout,有一个main活动,它有各种片段,其中有使用自定义TabLayout和ViewPager的嵌套片段。嵌套片段的每个片段都使用WebServices将数据显示到ListView 其中一个片段如下: public class IndicesFragment extends android.support.v4.app.Fragment { public static IndicesFragment newInstance() { return new IndicesFragment();
main活动
,它有各种片段
,其中有使用自定义TabLayout
和ViewPager
的嵌套片段。嵌套片段的每个片段都使用WebServices
将数据显示到ListView
其中一个片段如下:
public class IndicesFragment extends android.support.v4.app.Fragment {
public static IndicesFragment newInstance() {
return new IndicesFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.equity_activity, container, false);
act = this.getActivity();
return view;
}
public void onActivityCreated(Bundle savedInstanceState1) {
super.onActivityCreated(savedInstanceState1);
setHasOptionsMenu(true);
list = (ListView) view.findViewById(R.id.list_equity);
if (Utils.isNetworkAvailable(getActivity())) {
if (catListDao.size() > 0) {
adapter = new AdvisorsAdapter(act, R.layout.custom_equity, catListDao, 0);
list.setAdapter(adapter);
} else {
if (!isViewShown) {
new FetchAllData(getActivity(), 3).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
} else {
CustomToast toast = new CustomToast(getActivity(), "There is no internet connection!");
}
}
@Override
public void onResume() {
super.onResume();
Constants.check_fragment_visible = 1;
if (Constants.check_reload) {
if (Utils.isNetworkAvailable(getActivity())) {
new FetchAllData(getActivity(), 3).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
CustomToast toast = new CustomToast(getActivity(), "There is no internet connection!");
}
}
if (adapter != null) adapter.notifyDataSetChanged();
}
当我们从一个Fragment
更改Activity
时,我的应用程序会在没有任何对话框的情况下崩溃,当我们从另一个MainActivity
片段调用这个嵌套片段时,它会在那里冻结,嵌套片段的片段会在那里突然打开。挂起线程的堆栈跟踪如下所示:
1-29 12:10:49.580 10853-10863/com.cws.advisorymandi W/art: Suspending all threads took: 10.409ms
01-29 12:10:49.707 10853-10853/com.cws.advisorymandi D/cr_Ime: [InputMethodManagerWrapper.java:27] Constructor
01-29 12:10:49.711 10853-10853/com.cws.advisorymandi D/cr_Ime: [ImeAdapter.java:241] attach
01-29 12:10:49.711 10853-10853/com.cws.advisorymandi W/art: Attempt to remove local handle scope entry from IRT, ignoring
01-29 12:10:49.716 10853-10853/com.cws.advisorymandi W/AwContents: onDetachedFromWindow called when already detached. Ignoring
01-29 12:10:49.717 10853-10853/com.cws.advisorymandi D/cr_Ime: [InputMethodManagerWrapper.java:56] isActive: false
01-29 12:10:49.726 10853-10853/com.cws.advisorymandi W/art: Attempt to remove local handle scope entry from IRT, ignoring
01-29 12:10:49.726 10853-10853/com.cws.advisorymandi W/art: Attempt to remove local handle scope entry from IRT, ignoring
01-29 12:10:49.812 10853-10853/com.cws.advisorymandi D/cr_Ime: [ImeAdapter.java:241] attach
01-29 12:10:49.832 10853-10853/com.cws.advisorymandi D/cr_Ime: [ImeAdapter.java:241] attach
01-29 12:10:49.833 10853-10853/com.cws.advisorymandi I/Choreographer: Skipped 58 frames! The application may be doing too much work on its main thread.
01-29 12:10:50.075 10853-10853/com.cws.advisorymandi W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 10853
01-29 12:10:50.610 10853-10863/com.cws.advisorymandi W/art: Suspending all threads took: 43.636ms
01-29 12:10:50.621 10853-10853/com.cws.advisorymandi I/Ads: Scheduling ad refresh 60000 milliseconds from now.
01-29 12:10:50.630 10853-10853/com.cws.advisorymandi I/Ads: Ad finished loading.
您有内存问题。您可以尝试各种策略来帮助最小化冲突,例如隐藏用户看不到的片段的根视图,以及编写高效的代码。您有内存问题。您可以尝试各种策略来帮助最小化冲突,例如隐藏用户看不到的片段的根视图,以及编写高效的代码。