最近在學android編程,弄了一個小的app練手。APP實現藍牙通信的功能,啟動后進入A界面,實現搜索和連接的功能,並通過A界面進入B界面,完成顯示數據的部分。平時使用沒什么問題,最近發現在B界面返回到A界面后,再進入A界面,就會出現數據丟失的情況:調試顯示接收的數據大小不正確-----這部分還沒想明白怎么處理,為什么會出現數據丟失。
目前的解決方法是,將B活動設置為singleInstance啟動,這樣將A和B分為兩個任務棧。但是發現,僅僅這樣設置還不夠,問題依然存在。
在網上搜索按下back鍵不銷毀活動,基本上都是指回到桌面不銷毀的情況,通過重寫onKeyDown:
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode== KeyEvent.KEYCODE_BACK) { moveTaskToBack(true); return true; } return super.onKeyDown(keyCode,event); }
其中,moveTaskToBack(true);這一項挺重要的,當輸入false時,只對MainActivity生效,true則對所有的活動生效。
這樣,通過將A和B分在兩個任務棧,在B中按下返回時就能不被銷毀,重新進入數據依然保留着。
------還有其他的小問題正在學習和解決
11.13