簡體   English   中英

活動被破壞或暫停時如何恢復?

[英]How to restore when activity is destroyed or paused?

好吧,即時通訊很難保存我的活動狀態,以便在活動被破壞時可以恢復用戶最后一次退出的位置。 這是我的源代碼。 如果有人可以看一下,告訴我如何保存和恢復,將不勝感激。

這是我的代碼...

                public class DorothyTalk extends Activity{
    Handler handler = new Handler();
    int typeBar;
TextView text1;
EditText edit;
Button respond;
private String name;
private ProgressDialog progDialog;
@Override 
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dorothydialog);

    text1 = (TextView)findViewById(com.fttech.da.R.id.dialog);
    edit = (EditText)findViewById(com.fttech.da.R.id.repsond);
    respond = (Button)findViewById(com.fttech.da.R.id.button01);

    Talk();

}

    protected Dialog onCreateDialog(int id) {
switch(id) {
case 0:                      // Spinner
    progDialog = new ProgressDialog(this);
    progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progDialog.setMessage("Loading...");
    progDialog.setProgress(100);

    return progDialog;

} return progDialog; } public void Talk(){

    text1.setText("Welcome what is your name?");

    respond.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            name = edit.getText().toString();
            new AsyncTask<Void, Integer, Void>(){

            @Override
        protected Void doInBackground(Void... arg0) {
            try {                 
             Thread.sleep(1000);             
            } catch (InterruptedException e) {                         
                e.printStackTrace();             
                    }            
                    return null;
            }
            @Override         
        protected void onPostExecute(Void result) {             
                    text1.setText("Nice to meet you "+name);
                    dismissDialog(typeBar);
                     }


                @Override        
        protected void onPreExecute() { 
            typeBar = 0;
        showDialog(typeBar);

        }

        }.execute((Void)null);

        }
    });
    }


    public void onBackPressed()
      {
        int i = Log.d("CDA", "onBackPressed Called");
        Context localContext = getApplicationContext();
        Intent localIntent = new Intent(localContext, mainMenu.class);
        startActivityForResult(localIntent, 0);

        return;




    }

活動銷毀后如何保存和恢復?

您必須先保存數據,然后才能銷毀活動。 您可以使用isFinishing()測試是否要銷毀它

保護無效的onPause(){if(isFinishing()){saveData(); }}

然后您需要在onCreate()上重新加載數據

您可以嘗試覆蓋

public Object onRetainNonConfigurationInstance() {

    //object returned here can always be recovered in getLaststNonConfigurationInstance()
    return something;
}

並使用getLastNonConfigurationInstance()獲取狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM