2014-09-28 6 views
0

GooglePlay에서 사용자가 직접 내부 활동 (즉, 매니페스트에 LAUNCHER 카테고리에 대한 인 텐트 필터가 없음)을 시작한 것처럼 스택 추적이 보이는 3 개의 동일한 충돌 보고서가 있습니다.사용자가 내부 활동을 시작하는 방법

내가 지금까지 놓친 방법이 있습니까? 현재 액티비티에서 일종의 단축키를 만들고 나중에이 액티비티를 직접 시작할 수 있습니까? 여기

는 GOOGLEPLAY에서 스택 트레이스이다

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eb.ohrh.parawind.free/eb.wind.activity.logbook.LogBookSingleDispActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1728) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1747) at android.app.ActivityThread.access$1500(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) at android.os.Handler.dispatchMessage(Handler.java:130) at android.os.Looper.loop(SourceFile:351) at android.app.ActivityThread.main(ActivityThread.java:3814) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:538) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at eb.wind.views.mapv2.MapWithOverlay.isFlightMode(MapWithOverlay.java:599) at eb.wind.views.mapv2.MapWithOverlay.bindToModel(MapWithOverlay.java:335) at eb.wind.activity.logbook.LogBookSingleDispActivity$MyPagerAdapter.<init>(LogBookSingleDispActivity.java:189) at eb.wind.activity.logbook.LogBookSingleDispActivity.onCreate(LogBookSingleDispActivity.java:39) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1692) ... 11 more

LogBookSingleDispActivity 내부 활동이다. 다른 활동의 준비 단계 없이는 시작할 수 없습니다.

어떻게 생각하세요?

답변

0

귀하의 프로세스는 영원히 살 수 없습니다. 최근 작업 목록에 앱이 표시되었지만 프로세스가 종료 된 경우 사용자가 앱 (예 : 최근 작업 목록)으로 돌아 가면 Android는 사용자가 마지막으로 수행 한 활동으로 사용자를 반환합니다 .

사용자가 "내부"활동에 참여할 수있는 다른 시나리오가 있습니다 (예 : 앱 위젯 중 하나 인 Notifications).

사용자는 앱이 사용자가 어떤 액티비티로 이동해도 생존 할 수 있어야합니다. 이전 활동이 파괴되고 프로세스가 종료되었지만 이상적으로는 savedInstanceState과 같은 것을 사용하여 주위를 둘러 보았지만 나타납니다. 그럴 수없는 경우 (예 : 사용자가 재 인증을 받아야하는 경우) 다양한 해결책이 있습니다 (예 : 세션이 재설정되었음을 감지하고 startActivity()을 사용하여 로그인 활동으로 이동).

+0

방금 ​​다음을 시도했습니다. "내부"활동으로 이동하십시오. 홈 버튼으로 앱을 닫습니다 (즉, 백그라운드에서 계속 실행 중이며 내부 활동에서 다시 실행 됨). 그런 다음 애플리케이션 관리자를 사용하여 앱을 강제 종료하십시오. 최근 작업 목록에서 앱을 다시 시작하면 기본 시작 작업이 열립니다. 이것은 내가 예상했던 것입니다. 마지막 활동이 열리거나, 응용 프로그램이 아직 실행 중이거나, 응용 프로그램이 OS에 의해 중지 된 경우 시작 프로그램 활동이 열립니다. 설명 된 OS 동작을 시뮬레이트하는 또 다른 방법이 있습니까? – user2808624

+0

@ user2808624 : "그런 다음 응용 프로그램 관리자를 사용하여 응용 프로그램을 강제 종료합니다"- Android에는 "응용 프로그램 관리자"가 없습니다. 그리고 실제로 "강제 정지"를 의미하는 경우 설정에서 "강제 중지"버튼을 통해 정상적으로 수행되는 작업은 사용자가 정상적으로 수행 할 작업이 아닙니다. "당신이 묘사 한 OS 동작을 시뮬레이션 할 다른 방법이 있습니까?" - DDMS를 통해 프로세스를 종료합니다. – CommonsWare

+0

"Android에는 '응용 프로그램 관리자'가 없습니다." 이제는 Apps가 중지 될 수있는 설정의 제목입니다. DDMS를 사용하여 설명 된 동작에서 프로세스 결과를 중지하는 것이 옳습니다. – user2808624

관련 문제