android 成長日記 3.關於Activity的用戶體驗提高辦法和使用技巧說明

  1. 在activity中輸入的信息當你再次返回時加入進程被回收,頁面會從新創建,你輸入的文本就不會顯示了,所以,只要咱們重寫onSaveInstanceState參數是一個bundle類型,你能夠給參數添加數據內容,存在此處,由於在oncreat函數中的參數即是此時的bundle類型的數據即savedInstanceState參數,你只要判斷其是否爲空從而取出你須要恢復的數據,進行邏輯處理便可。(onSavedInstanceState()函數要和oncreat中判斷參數一塊兒寫才生效,可是手機比較好一直沒機會測試這個功能,你要是知道怎麼在第二個界面手動回收第一個Activity的進程請告訴我謝謝啊!!!)ide

public class MainActivity extends Activity {函數

public EditText editText;測試

public String a = "lkk";spa


@Override指針

protected void onCreate(Bundle savedInstanceState) {orm

super.onCreate(savedInstanceState);進程

setContentView(R.layout.activity_main);內存

Button button1 = (Button) findViewById(R.id.button1);get

editText = (EditText) findViewById(R.id.editText1);it

TextView textView = (TextView) findViewById(R.id.textView1);

                    if(savedInstanceState != null){

String temp = savedInstanceState.getString("data");

editText.setText(temp);

a= temp;

                        textView.setText(a);

}

}

 @Override

    protected void onSaveInstanceState(Bundle outState) {

   

    super.onSaveInstanceState(outState);

    String save = editText.getText().toString();

    outState.putString("data", save);

   

    }

}

這裏我把oncreat取得數據不只寫進了EditText還複製給了TextView,可是我一直不能實現內存是回收,因此回頭再測試吧,****

我找到了讓他調用onSaveInstanceState的辦法了,就是手機橫豎屏幕切換時候,

這裏必定要先聲明初始化在賦值,也就是把if放在findViewById方法後邊,要不一直空指針,旋轉屏幕自動退出該activity,看似簡單,我看了半個小時啊。記住啊。


2.activity的啓動模式

默認就是standard。singleTop(只在本身打開本身的時候不會從新生成,就是你在棧頂的時候不會建立你,只會直接讓你繼續顯示而已)。singletask(也就是隻要棧裏面有這個activity,若是發現已經存在則直接使用該實例,並把在這

個活動之上的全部活動通通出棧)。singleInstance中就很特殊了,就是可使得特定的activity本身爲本身生成一個棧堆,

例如,1   2    3三個頁面 1和2是singletask,3是singleInstance,而後1打開2,2打開3,3,打開1.此時我按返回確定是回到3,再按就到桌面了。緣由就是這倆特性致使的。 

相關文章
相關標籤/搜索