Vì vậy, ứng dụng Android của tôi có các thành phần sau: LoginActivity, MainActivity sử dụng Ngăn kéo điều hướng, một loạt các phần khác nhau được xử lý bởi Ngăn kéo điều hướng trong Hoạt động chính.Tái khởi tạo Vải Twitter sau khi ứng dụng android thời gian nhàn rỗi
Trong LoginActivity, tôi thiết lập TwitterAuthConfig và cũng thức ăn đó vào Fabric.with (.... Twitter (authConfig) ...), về cơ bản làm những gì họ nói để làm trong tài liệu: Fabric integration documentation
Sau khi người dùng điều hướng thông qua LoginActivity và đăng nhập thành công, nó sẽ chuyển đến Main Activity, mở ngăn điều hướng và cho phép họ chọn Fragment mà họ muốn truy cập. LoginActivity gọi this.finish() sau khi khởi động MainActivity.
Vấn đề của tôi là một trong những Mảnh vỡ tôi đã sử dụng Dòng thời gian Twitter được nhúng cần xác thực vải thông qua lệnh Fabric.with(). Điều này làm việc fine lần đầu tiên, nhưng một khi tôi rời khỏi ứng dụng và nó vẫn ở chế độ nền trong một thời gian, tôi tin onDestroy() được gọi và sau đó thể hiện Fabric bị xóa.
Vì vậy, khi tôi mở nó lại lên một lần nữa từ phía sau, nó có báo lỗi sau:
07-09 15:59:55.179 7933-7933/com.writers.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.writers.myapp, PID: 7933
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.writers.myapp/com.writers.myapp.MainActivity}: java.lang.IllegalStateException: Must Initialize Fabric before using singleton()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2329)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
at android.app.ActivityThread.access$900(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: java.lang.IllegalStateException: Must Initialize Fabric before using singleton()
at io.fabric.sdk.android.Fabric.singleton(Fabric.java:265)
at io.fabric.sdk.android.Fabric.getKit(Fabric.java:516)
at com.twitter.sdk.android.tweetui.TweetUi.checkInitialized(TweetUi.java:120)
at com.twitter.sdk.android.tweetui.TweetUi.getInstance(TweetUi.java:69)
at com.twitter.sdk.android.tweetui.TwitterListTimeline$Builder.<init>(TwitterListTimeline.java:108)
at com.myapp.newstimeline.TimelineFragment.onCreateView(TimelineFragment.java:49)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1120)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1929)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1220)
at android.app.Activity.performStart(Activity.java:5949)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
at android.app.ActivityThread.access$900(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
07-09 15:59:55.203 775-1192/? W/ActivityManager﹕ Force finishing activity com.writers.myapp/.MainActivity
Bất kỳ ý tưởng làm thế nào để khắc phục vấn đề này?
- Tôi có nên thêm tuyên bố Fabric.with() vào MainActivity không?
- Tôi có nên bắt IllegalStateException không? Nếu vậy, ở đâu?
- Tôi có làm điều này sai không?
Cảm ơn sự giúp đỡ của bạn trước!