如何在android中恢复活动状态?

时间:2012-09-05 10:20:43

标签: android android-spinner

如何退出活动并将其恢复到以前的状态? 在那次活动中,我有旋转器。如果我从下拉列表中选择第二项,我从该活动中退出并再次返回,活动正在重新加载。但我想恢复以前活动的确切内容?

spinner.post(new Runnable() {
        public void run() {
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    dealerCd_fromDD = dealerInsp.getMap2().get(
                            dealerInsp.getLoadseqArray()[arg2]);
                    GlobalVehicle.setVehList(loadVehicles(dealerCd_fromDD));
                    loadHosts(GlobalVehicle.getVehList());
                    dealerDetails(dealerCd_fromDD, GlobalVehicle.getDealerObject());
                    loadDefaults(arg2);
                    pos=arg2;
                    deliveryInspDb.delete("damages");
                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {

                }
            });
        }
    });

请任何人帮我这个..

我试着打电话给finish(),但是我从3个不同的活动开始参加那个活动。所以在那种情况下它不起作用..

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以将数据存储在onStop()onPause()上的SharedPreferences,并检索活动的onRestart()事件。

        @Override
        protected void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
            SharedPreferences.Editor editor = settings.edit();                      
            editor.putInt("Selected", spinner.getSelectedItemPosition());
            editor.commit();
        }
     ....

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();          
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
        spinner.setSelection(settings.getInt("Selected", 0));           
    }

您还可以检索onCreate(),如果您希望即使您的活动被杀,也应该恢复您的数据

更新:如果您来自不同的活动,可以尝试Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,如果没有被杀,这将把您的活动带到前面。

答案 2 :(得分:0)

尝试使用onSaveInstanceState保存活动状态,onRestoreInstanceState用于检索活动状态。 看看这个链接,它可能会解决这个问题。 https://stackoverflow.com/a/151940/1626878