我正在开发一个应用程序,将在工业设置中使用作为手持式界面,分布式和我的工作场所预先配置。我正在努力使应用程序作为主页启动器运行,以便让平板电脑“失踪”的诱惑力降低。主页启动器问题与碎片重新启动后
背景
我有我的表现,使应用程序启动器中的以下内容:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
(我可以发布更多的清单,如果有必要的)
我的应用程序的结构如下:
- US B_Stuff延伸活动
- 主要延伸USB_Stuff
- 的UI扩展片段
- SQLiteHelper扩展SQLiteOpenHelper
“主” 处理所有的片段通信和交易的。 “Main”也是在名称属性<activity>
下的清单中注册的内容。
我也有一个BOOT_COMPLETED
接收器在启动我的应用程序的清单。
问题
解决现在一切都很正常,如果我从Eclipse运行程序,并使用它。但是,如果我重启设备(在华硕Nexus 7(4.2.2)和三星Galaxy Tab 2 7.0(4.1.1)上进行测试),它会在第一个屏幕上启动,其中包含ListView
,如下所示:
然后我可以选择的项目形成的列表,它会带我到包含在地方名单三个按钮的下一个片段:
解决如果我点击上面第二张图片上的红色框,那么一旦停用“onClickListener”(?),我在红色空间中触摸后,我可以选择一个不同的项目,形成ListView
一次。虽然如果我点击三个可见按钮之一,应用程序将执行它的onClick
方法,而不是点击进入前一个屏幕。这种行为在多个屏幕上继续,并在应用程序到达TableLayouts
时停止。
另一个我觉得可能会涉及的问题是,后退按钮和后来取消按钮应该弹出后栈到某些点根本不起作用或执行不正确的弹出位置。
UPDATE:下面执行我的解决方案后,我已经解决了大部分问题,但如果我开始前2秒内使用应用程序(约),那么我还是结束了在弹出的随机后退栈位置。
我想通了那么远,
如果我注释掉主页启动intent-filter
和使用BOOT_COMPLETED
过滤器重新正常启动的应用程序,那么一切功能。
此外,我添加了日志语句来查看整个程序中的后退栈条目数,并在应用程序正确运行时遵循相同的确切路径,而且数字一致,但如果单击红色框,应用程序会将碎片添加到它不应该存在的后端堆栈中。这导致我相信这不是在后面堆栈上的额外项目可能泄漏他们的意见的问题。
解决编辑:我添加了一个按钮,什么都没有做,这是在宽度和高度match_parent
第二个片段,当我试图通过点击前面的片段的ListView
,它没有工作。看起来好像背景是“可点击的”并且前一个片段被设置为“背景/壁纸”(?)。
质询
ANSWERED 1)什么能在重新启动后会从这些片段 “布局泄漏” 到片段?
部分答案 2)什么会导致背部/取消按钮(popBackStack(...)
)重新启动后不能正常工作?
根据要求可提供更多代码以便于解决方案。