0

데이터베이스에 저장된 질문이있는 테스트 응용 프로그램이 있습니다. 내 FragmentActivity에는 새 질문이 AppBar에서 선택 될 때 바뀌고있는 조각이 포함되어 있습니다. 30 번 정도 새로운 질문을 선택하면 FragmentActivity가 예기치 않게 닫히고 스택에 있던 이전 활동이 나타납니다.약 30 번 호출 후 fragmentTransaction.replace() FragmentActivity가 예기치 않게 종료됩니다

내 Logcat 수준에서 Verbose에서 응용 프로그램과 관련된 내용이 표시되지 않는 이유는 무엇일까요?

내 XML 코드 :

RelativeLayout의 항상 fragmentTransaction.replace를 호출시 조각으로 대체되고있다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<RelativeLayout 
    android:id="@+id/fragment_container" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:background="@drawable/buttonshape" 
    android:orientation="horizontal"> 

    <HorizontalScrollView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

     <LinearLayout 
      android:id="@+id/linearLayoutAppbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 

     </LinearLayout> 
    </HorizontalScrollView> 

    <ImageView 
     android:layout_width="50dp" 
     android:layout_height="match_parent" 
     android:src="@drawable/s202_background" /> 
</LinearLayout> 
(); 아래의 LinearLayout에는 데이터베이스의 각 질문을 프로그래밍 방식으로 생성 한 Button이있는 AppBar가 있습니다.

버튼을 클릭하면 OnClickListener가 호출되어 클릭 한 버튼을 식별 한 다음 새 메소드에서 fragmentTransaction.replace()를 호출합니다.

private void question1() { 
    testPrasanjaCursor = BazaNaPrasanja.testDatabase.query(VozackaDbContract.TABLE_NAME_TABELA_TEST, null, null, null, null, null, null); 
    fragmentTransaction = fragmentManager.beginTransaction(); 
    testPrasanjaCursor.moveToPosition(0); 

    fragmentTransaction.replace(R.id.fragment_container, fragmentZnaci4); 
    fragmentTransaction.commit(); 
    testPrasanjaCursor.close(); 
} 

나는 자세한 정보 내 Appliaction와 관련된 정보가없는 원인 SQLite는 데이터베이스가 또는 FragmentManager를 일으키는 지 모르겠어요 : 다음은 그 방법에 대한 코드입니다.

12-11 13:33:48.802 1722-1722/? I/art: Not late-enabling -Xcheck:jni (already on) 
12-11 13:33:48.803 1722-1722/? W/art: Unexpected CPU variant for X86 using defaults: x86_64 
12-11 13:33:48.906 1722-1722/mojavozacka.testovi_za_vozacka_dozvola W/System: ClassLoader referenced unknown path: /data/app/mojavozacka.testovi_za_vozacka_dozvola-2/lib/x86_64 
12-11 13:33:48.918 1722-1722/mojavozacka.testovi_za_vozacka_dozvola I/InstantRun: Instant Run Runtime started. Android package is mojavozacka.testovi_za_vozacka_dozvola, real application class is null. 
12-11 13:33:49.203 1722-1722/mojavozacka.testovi_za_vozacka_dozvola W/System: ClassLoader referenced unknown path: /data/app/mojavozacka.testovi_za_vozacka_dozvola-2/lib/x86_64 
12-11 13:33:49.353 1722-1722/mojavozacka.testovi_za_vozacka_dozvola W/art: Verification of java.lang.Object mojavozacka.testovi_za_vozacka_dozvola.PocetnaActivity.access$super(mojavozacka.testovi_za_vozacka_dozvola.PocetnaActivity, java.lang.String, java.lang.Object[]) took 110.107ms 
12-11 13:33:49.605 1722-1729/mojavozacka.testovi_za_vozacka_dozvola W/art: Suspending all threads took: 53.041ms 
12-11 13:33:49.966 1722-1752/mojavozacka.testovi_za_vozacka_dozvola D/NetworkSecurityConfig: No Network Security Config specified, using platform default 
12-11 13:33:50.168 1722-1722/mojavozacka.testovi_za_vozacka_dozvola I/SQLiteAssetHelper: successfully opened database vozacka.db 
12-11 13:33:50.170 1722-1722/mojavozacka.testovi_za_vozacka_dozvola I/SQLiteAssetHelper: successfully opened database test.db 
12-11 13:33:50.177 1722-1734/mojavozacka.testovi_za_vozacka_dozvola I/art: Background sticky concurrent mark sweep GC freed 10882(1917KB) AllocSpace objects, 11(220KB) LOS objects, 0% free, 45MB/45MB, paused 4.735ms total 215.229ms 
12-11 13:33:50.319 1722-1778/mojavozacka.testovi_za_vozacka_dozvola I/OpenGLRenderer: Initialized EGL, version 1.4 
12-11 13:33:50.319 1722-1778/mojavozacka.testovi_za_vozacka_dozvola D/OpenGLRenderer: Swap behavior 1 
12-11 13:33:50.337 1722-1778/mojavozacka.testovi_za_vozacka_dozvola E/EGL_emulation: tid 1778: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 
12-11 13:33:50.337 1722-1778/mojavozacka.testovi_za_vozacka_dozvola W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7d21b2f6f780, error=EGL_BAD_MATCH 
12-11 13:33:50.415 1722-1734/mojavozacka.testovi_za_vozacka_dozvola I/art: Background partial concurrent mark sweep GC freed 10885(956KB) AllocSpace objects, 6(120KB) LOS objects, 8% free, 44MB/48MB, paused 19.305ms total 217.880ms 
12-11 13:33:53.844 1722-1722/mojavozacka.testovi_za_vozacka_dozvola I/SQLiteAssetHelper: successfully opened database vozacka.db 
12-11 13:33:53.858 1722-1722/mojavozacka.testovi_za_vozacka_dozvola I/SQLiteAssetHelper: successfully opened database test.db 
12-11 13:33:53.866 1722-1734/mojavozacka.testovi_za_vozacka_dozvola W/art: Suspending all threads took: 7.410ms 
12-11 13:33:53.962 1722-1778/mojavozacka.testovi_za_vozacka_dozvola E/EGL_emulation: tid 1778: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 
12-11 13:33:53.962 1722-1778/mojavozacka.testovi_za_vozacka_dozvola W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7d21b2f6f040, error=EGL_BAD_MATCH 
12-11 13:33:55.979 1722-1729/mojavozacka.testovi_za_vozacka_dozvola W/art: Suspending all threads took: 15.611ms 
12-11 13:33:56.304 1722-1778/mojavozacka.testovi_za_vozacka_dozvola E/EGL_emulation: tid 1778: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 
12-11 13:33:56.304 1722-1778/mojavozacka.testovi_za_vozacka_dozvola W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7d21b2f6f780, error=EGL_BAD_MATCH 
12-11 13:33:58.573 1722-1722/mojavozacka.testovi_za_vozacka_dozvola W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 
12-11 13:34:00.499 1722-1729/mojavozacka.testovi_za_vozacka_dozvola W/art: Suspending all threads took: 8.897ms 
12-11 13:34:01.755 1722-1734/mojavozacka.testovi_za_vozacka_dozvola I/art: WaitForGcToComplete blocked for 5.076ms for cause Background 
12-11 13:34:05.741 1722-1778/mojavozacka.testovi_za_vozacka_dozvola E/EGL_emulation: tid 1778: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH) 
12-11 13:34:05.741 1722-1778/mojavozacka.testovi_za_vozacka_dozvola W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7d21b2f6f040, error=EGL_BAD_MATCH 
12-11 13:34:08.083 1722-1722/mojavozacka.testovi_za_vozacka_dozvola W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 

답변

0

나는 당신을 여부를 도울 수 내 대답의 확실하지 오전하지만 당신은 시도 할 수 있습니다 :

는 편집 : 그것은 FragmentActivity을 닫을 때까지 로그 캣 여기에 추가 내가 에뮬레이터에서 실행을 클릭합니다 이후 모든 로그 캣 있습니다 그것을 말하고, 나에게 그것이 성능과 동일하거나 또는 다르지 않다라고 말해라.

yourContentView= (LinearLayout) findViewById(R.id.content_main1); 
yourContentView.removeAllViews(); 
+0

"layoutMain"이라는 ID를 가진 주요 LinearLayout을 의미합니까? –

+0

예, 다른 질문이 포함 된 콘텐츠를 변경하려는 레이아웃 –

+0

질문에 따라 내용이 변경되는 레이아웃을 선택하는 것은 ID가 "fragment_container"인 RelativeLayot입니다. 클릭 할 때 레이아웃을 다른 조각으로 바꿉니다. 단추. 나는 당신의 대답을 시도하고 그것이 작동하는지 알려줄 것입니다. –

0

나는 이것에 간단한 해결책을 발견했다. 열어 본 25 개의 질문에서 나는 같은 활동을 다시 만든다. 버그는 활동과 관련이있는 것으로 보입니다. 각 활동에는 최대 30 개의 조각이 대체 될 수 있습니다.

관련 문제