日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bundle savedInstanceState的作用

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bundle savedInstanceState的作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫過Android程序的都知道Activity中有一個名稱叫onCreate的方法。該方法是在Activity創建時被系統調用,是一個Activity生命周期的開始。可是有一點容易被忽視,就是onCreate方法的參數savedInstanceState。因為在一般的程序開發中,很少用到這個參數。
onCreate方法的完整定義如下:

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); }

從上面的代碼可以看出,onCreate方法的參數是一個Bundle類型的參數。Bundle類型的數據與Map類型的數據相似,都是以key-value的形式存儲數據的。
從字面上看savedInstanceState,是保存實例狀態的。實際上,savedInstanceState也就是保存Activity的狀態的。那么,savedInstanceState中的狀態數據是從何處而來的呢?下面我們介紹Activity的另一個方法saveInstanceState。
onsaveInstanceState方法是用來保存Activity的狀態的。當一個Activity在生命周期結束前,會調用該方法保存狀態。這個方法有一個參數名稱與onCreate方法參數名稱相同。如下所示:
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInsanceState);
}
在實際應用中,當一個Activity結束前,如果需要保存狀態,就在onsaveInstanceState中,將狀態數據以key-value的形式放入到savedInstanceState中。這樣,當一個Activity被創建時,就能從onCreate的參數savedInsanceState中獲得狀態數據。
狀態這個參數在實現應用中有很大的用途,比如:一個游戲在退出前,保存一下當前游戲運行的狀態,當下次開啟時能接著上次的繼續玩下去。再比如:電子書程序,當一本小說被閱讀到第199頁后退出了(不管是內存不足還是用戶自動關閉程序),當下次打開時,讀者可能已忘記了上次已閱讀到第幾頁了,但是,讀者想接著上次的讀下去。如果采用saveInstallState參數,就很容易解決上述問題。
簡單的事例api中snake游戲 在SnakeView類中

private int[] coordArrayListToArray(ArrayListcvec) {int count = cvec.size();int[] rawArray = new int[count * 2];for (int index = 0; index < count; index++) {Coordinate c = cvec.get(index);rawArray[2 * index] = c.x;rawArray[2 * index + 1] = c.y;}return rawArray;}public Bundle saveState() {Bundle map = new Bundle();map.putIntArray("mAppleList", coordArrayListToArray(mAppleList));map.putInt("mDirection", Integer.valueOf(mDirection));map.putInt("mNextDirection", Integer.valueOf(mNextDirection));map.putLong("mMoveDelay", Long.valueOf(mMoveDelay));map.putLong("mScore", Long.valueOf(mScore));map.putIntArray("mSnakeTrail", coordArrayListToArray(mSnakeTrail));return map;}

在snakeActivity中實現

@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.snake_layout);mSnakeView = (SnakeView) findViewById(R.id.snake);mSnakeView.setTextView((TextView) findViewById(R.id.text));if (savedInstanceState == null) {// We were just launched -- set up a new gamemSnakeView.setMode(SnakeView.READY);} else {// We are being restoredBundle map = savedInstanceState.getBundle(ICICLE_KEY);if (map != null) {mSnakeView.restoreState(map);} else {mSnakeView.setMode(SnakeView.PAUSE);}}}

并重寫onSavedInstanceState(),此方法會在activity結束時,調用.

@Overridepublic void onSaveInstanceState(Bundle outState) {//Store the game stateoutState.putBundle(ICICLE_KEY, mSnakeView.saveState());}

總結

以上是生活随笔為你收集整理的Bundle savedInstanceState的作用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩成人中文字幕 | 亚洲午夜剧场 | 超碰超碰在线 | 成人资源站 | 日少妇av | 日日摸天天添天天添破 | 一区二区三区高清在线观看 | 最新欧美大片 | 午夜啊啊啊 | 日韩成人区 | 精品国产99 | 中文字幕精品视频在线 | 亚洲aa| 女人囗交吞精囗述 | av大全免费 | 国产精品成人电影在线观看 | 激情综合久久 | www.一级片| 99人妻少妇精品视频一区 | 久久亚洲激情 | 少妇被躁爽到高潮 | 刘亦菲一区二区三区免费看 | 操碰视频在线 | 波多野一区二区三区 | 国产香蕉视频在线播放 | 黑丝啪啪 | 96福利视频 | 亚洲播放器| 在线观看黄色小视频 | 一区二区日本视频 | 国产黄大片 | 双性娇喘浑圆奶水h男男漫画 | 国内自拍在线 | 亚洲欧洲国产精品 | 在线中文字幕播放 | 欧美69视频| 欧美裸体网站 | 国产一区二区在线免费 | 国产美女永久免费无遮挡 | 在线不卡日韩 | av免费在线网站 | 同性色老头性xxxx老头 | 伊人色婷婷 | 国产一区二区三区视频在线播放 | 日韩中文字幕久久 | 精品影视一区二区 | 青青99 | 国产精品久久久久久99 | 激情四月 | 国产20页| 草草地址线路①屁屁影院成人 | 综合激情网五月 | 亚洲美女精品 | 丝袜熟女一区二区三区 | 探花系列在线观看 | 午夜视频91 | 国产精品久久久999 www日本高清视频 | 国产不卡网 | 被两个男人吃奶三p爽文 | 嫩草在线播放 | 色婷婷综合成人av | 侵犯亲女在线播放视频 | 美女污污网站 | 久久国产区 | 五月婷婷av | 人妻熟女一区二区aⅴ水 | 拔插拔插海外华人永久免费 | 日韩欧美激情在线 | 夜夜夜夜操 | 色综合久久精品亚洲国产 | 韩国三级hd中文字幕叫床浴室 | 欧美日韩亚洲第一 | 日韩18p | 原创真实夫妻啪啪av | 五月婷婷激情 | 伊人久久国产精品 | 少妇h视频| 欧美三级影院 | 超碰在线网 | 国产a网站 | 亚洲欧美激情另类 | 涩涩网址| 国产aⅴ激情无码久久久无码 | 日批视频在线播放 | 自拍偷拍视频在线观看 | 国产有码 | 欧美一性一交 | 亚洲精品高潮久久久久久久 | 国产毛片久久久久 | 国产在线拍揄自揄拍 | 国产精品久久综合 | 香蕉视频在线网站 | 致单身男女免费观看完整版 | 欧美不卡网 | 亚洲加勒比 | 日韩网红少妇无码视频香港 | www.久热 | 毛片你懂的 | 国产av电影一区二区 |