我不时在我的应用程序中得到以下来自崩溃的堆栈跟踪:
java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:4463)
at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
at org.MyCommands.initCommands(FICSCommands.java:78)
at org.MyCommands.MyFragementActivity.onStart(ConsoleTriangle.java:90)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164)
at android.app.Activity.performStart(Activity.java:5114)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2273)
根据Activity Lifecyle,onCreate()
是onStart()
之前的FragmentActivity
,我想这也适用于onStart()
。因此,我得出结论,:(
所需的一切已经完成并可用。但根据堆栈跟踪情况并非如此。我想启动一些ArrayAdapter,但这失败了。 oncreate()
MyFragementActivity msgText = ...
....
onStart()
msgText.initCommands(this)
异常发生,当应用程序在后台时,我激活它并进入前台。我想这也与背景中的太长时间有关,因此有些东西已经过了GC。
我有什么想法可以正确检查事情吗?
编辑: (由于问题所在,为了让我更清楚一点,我要问的是什么)
到目前为止我所做的事情是这样的:
initCommands(View v)
...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(InitialContext.getContext(),...
和MyFragementActivity
ArrayAdapter<String> adapter = new ArrayAdapter<String>(v,...
我现在改为
{{1}}
但我仍然不明白: