我嘗試創建的應用程序是ViewPager
,然後由Fragments
組成。方向更改時處理SQLiteOpenHelper
每個Fragment
有不同的數據,因爲它從Database
得到它。
我在FragmentStatePagerAdapter
的內部發送從Fragment Activity
到Fragment
的數據庫類。
下面是代碼:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return PageFragment.create(position, student, getApplicationContext(), mDbStudent);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
mDbStudent是數據庫類。
我打開我的mDbStudent在onCreate
而且我閉上mDbStudent時onDestroy
我的問題是,當方向的變化,mDbStudent
被摧毀 但fragment
仍然加載來自數據庫的數據,因此發生錯誤。
我試圖讓mDbStudent在Fragment
時onAttach
,但是當我移動網頁速度非常快,其記錄說我沒有關閉mDbStudent
我的問題是是否有辦法在方向更改時處理mDbStudent?
感謝您的回答,我認爲我對'Context'沒有任何問題。我的問題是什麼時候關閉並打開'mDbStudent'。你知道如何處理它嗎? – Sieryuu 2013-03-16 02:12:02
修正答案。 'onUserLeaveHint()'適用於此。 – 323go 2013-03-16 02:18:39
謝謝,但我打開我的數據庫onCreate,當方向改變時它會再次打開。如何解決它?因爲如果它打開兩次logcat將出現我永遠不會關閉數據庫 – Sieryuu 2013-03-16 02:23:42