我正在開發一個應用程序,將在工業設置中使用作爲手持式界面,分佈式和我的工作場所預先配置。我正在努力使應用程序作爲主頁啓動器運行,以便讓平板電腦「失蹤」的誘惑力降低。主頁啓動器問題與碎片重新啓動後
背景
我有我的表現,使應用程序啓動器中的以下內容:
<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(...)
)重新啓動後不能正常工作?
根據要求可提供更多代碼以便於解決方案。