2

我在我的应用程序中遇到了一个奇怪的问题,在我的 ActivityOnPause()之后立即调用OnCreate()and OnResume()。我有一些功能要在 中执行OnPause(),但我不知道为什么会这样。在我的日志中显示为:

05-14 13:40:09.916: E/TestActivity(840): onCreate()
05-14 13:40:09.936: E/TestActivity(840): onResume()
**05-14 13:40:09.956: E/TestActivity(840): onPause()**
05-14 13:40:09.956: E/TestActivity(840): onResume()

编辑

    public class PreTestActivity extends Activity{

    public static final String PREFS_NAME = "iPTPrefsFile";
    private static final String TAG = "PreTestActivity";
    SharedPreferences settings;

        static final int HEART_RATE_DIALOG_ID = 0;
        static final int BLOOD_PRESSURE_DIALOG_ID = 1;
        static final int RESPIRATORY_RATE_ID = 2;
        static final int O2_SATURATION_DIALOG_ID = 3;

    Button testActionNextButton,testActionBackButton;
    EditText Heart_Rate_EditText,Blood_Pressure_EditText,Respiratory_Rate_EditText,O2_Saturation_EditText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pre_test);
         Log.e(TAG, "onCreate()=");
        settings = getSharedPreferences(PREFS_NAME, 0);

        Heart_Rate_EditText=(EditText)findViewById(R.id.Heart_Rate_EditText);
        Blood_Pressure_EditText=(EditText)findViewById(R.id.Blood_Pressure_EditText);
        Respiratory_Rate_EditText=(EditText)findViewById(R.id.Respiratory_Rate_EditText);
        O2_Saturation_EditText=(EditText)findViewById(R.id.O2_Saturation_EditText);

        testActionNextButton = (Button)findViewById(R.id.testActionNextButton);
        testActionNextButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!Heart_Rate_EditText.getText().toString().equalsIgnoreCase("")&&!Blood_Pressure_EditText.getText().toString().equalsIgnoreCase("")
                   &&!Respiratory_Rate_EditText.getText().toString().equalsIgnoreCase("")&&!O2_Saturation_EditText.getText().toString().equalsIgnoreCase("")){
                Log.d(TAG,"Heart_Rate_EditText="+Heart_Rate_EditText.getText().toString());
                Log.d(TAG,"Blood_Pressure_EditText="+Blood_Pressure_EditText.getText().toString());
                Log.d(TAG,"Respiratory_Rate_EditText="+Respiratory_Rate_EditText.getText().toString());
                Log.d(TAG,"O2_Saturation_EditText="+O2_Saturation_EditText.getText().toString());


                SharedPreferences.Editor editor = settings.edit();

                float PreHeartRate=Float.parseFloat(Heart_Rate_EditText.getText().toString());
                float PreBloodPressure=Float.parseFloat(Blood_Pressure_EditText.getText().toString());
                float PreRepositoryRate=Float.parseFloat(Respiratory_Rate_EditText.getText().toString());
                float PreO2saturation=Float.parseFloat(O2_Saturation_EditText.getText().toString());

                editor.putFloat("preHeartRate", PreHeartRate);
                editor.putFloat("preBloodPressure", PreBloodPressure);
                editor.putFloat("preRepositoryRate", PreRepositoryRate);
                editor.putFloat("preO2saturation", PreO2saturation);
                editor.commit();
                // TODO Auto-generated method stub

                }
                if(validateForm()) {
                       Intent PreTestActivityIntent = new Intent(getParent(), TimerActivity.class);
                       BergBalanceScaleActivity parentActivity = (BergBalanceScaleActivity)getParent();
                       parentActivity.replaceContentView("PreTestActivity", PreTestActivityIntent);

                }

                }
        });
        testActionBackButton=(Button)findViewById(R.id.testActionBackButton);
        testActionBackButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //finish();
            }
        });
    }
    @Override
    protected void onPause() {
        super.onPause();
        //isRecord=1;
        Log.e(TAG, "onPause()=");
    }
    @Override
    protected void onStop() {
        super.onStop();
        //isRecord=1;
        Log.e(TAG, "onStop()=");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG, "onResume()=");
        if(settings.getFloat("preHeartRate", 0)==0.0 && settings.getFloat("preBloodPressure", 0)==0.0 && settings.getFloat("preRepositoryRate", 0)==0.0 && settings.getFloat("preO2saturation", 0)==0.0){
            Heart_Rate_EditText.setText("");
            Blood_Pressure_EditText.setText("");
            Respiratory_Rate_EditText.setText("");
            O2_Saturation_EditText.setText("");
            }else{

                //if(isRecord==1){
                 Heart_Rate_EditText.setText(""+settings.getFloat("preHeartRate", 0));
                 Blood_Pressure_EditText.setText(""+settings.getFloat("preBloodPressure", 0));
                 Respiratory_Rate_EditText.setText(""+settings.getFloat("preRepositoryRate", 0));
                 O2_Saturation_EditText.setText(""+settings.getFloat("preO2saturation", 0));
                //}
            }
     }

    @Override
    protected Dialog onCreateDialog(int id) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getParent());
        AlertDialog dialog;
        switch(id) {

            case HEART_RATE_DIALOG_ID:
                builder.setMessage("Pleas, enter  Heart Rate.")
                        .setCancelable(false)
                        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {

                    }
                });
                dialog = builder.create();
                break;
            case BLOOD_PRESSURE_DIALOG_ID:
                builder.setMessage("Please enter  Blood Pressure.")
                        .setCancelable(false)
                        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {

                            }
                });
                dialog = builder.create();
                break;
            case RESPIRATORY_RATE_ID:
                builder.setMessage("Please enter  Respiratory rate.")
                        .setCancelable(false)
                        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {

                            }
                        });
                dialog = builder.create();
                break;
            case O2_SATURATION_DIALOG_ID:
                builder.setMessage("Please enter  O2 Saturation.")
                        .setCancelable(false)
                        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {

                            }
                        });
                dialog = builder.create();
                break;

            default:
                dialog = null;
        }
        return dialog;
    }
    boolean validateForm() {
        boolean result = true;
        if("".equals(Heart_Rate_EditText.getText().toString())) {
            showDialog(HEART_RATE_DIALOG_ID);
            result = false;
        } else if("".equals(Blood_Pressure_EditText.getText().toString())) {
            showDialog(BLOOD_PRESSURE_DIALOG_ID);
            result = false;
        } else if("".equals(Respiratory_Rate_EditText.getText().toString())) {
            showDialog(RESPIRATORY_RATE_ID);
            result = false;
        } else if("".equals(O2_Saturation_EditText.getText().toString())) {
            showDialog(O2_SATURATION_DIALOG_ID);
            result = false;
        } 
        return result;
    }
}

任何人都可以在这方面帮助我。

4

0 回答 0