0

好的,所以我很难保存我的活动状态,以便当活动被破坏时,它可以恢复用户上次停止的位置。这是我的源代码。如果有人可以查看它并告诉我我将如何保存和恢复,我们将不胜感激。

这是我的代码...

                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;

} 返回程序对话框;} 公共无效谈话(){

    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;




    }

活动被破坏时如何保存和恢复?

4

2 回答 2

0

您必须在您的活动被销毁之前保存您的数据。您可以使用 isFinishing() 测试它是否会被销毁

受保护的无效 onPause(){ if(isFinishing()){ saveData(); } }

那么你需要重新加载你的数据 onCreate()

于 2011-06-21T01:09:57.360 回答
0

您可以尝试覆盖

public Object onRetainNonConfigurationInstance() {

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

并用于getLastNonConfigurationInstance()恢复状态。

于 2011-06-21T01:56:18.363 回答