문제

도 했는데 기본적인 데이터 로깅 응용 프로그램,는 사용자가 입력 값으로 역동적이고 종종의 큰 숫자를 EditText 전망이다.사용자는 입력을 완료하면 모든 데이터의 버튼을 누를 수 있는 사진을 촬영의 데이터 입력(곰이 나와 함께 저장에 대한 입력으로 사진을,특정한 이유)및 사진을 저장합하여 저장합니다.

문제: 그것은 작품을 제외하고,매우 잘 중 하나에 대한 특정 문제입니다.행사할 때,사용자가 전화로 유휴(는 자주 발생하기 전에 입력 실제로 저장됩니다),모든 입력에서 EditText 망을 취소(로 만들어주는 화가/슬픈 사람).무엇보다,그것만이 발생했을 때가 있어요 철사에 감겨서 울타리에서 수 없는 볼 로그파일에서 이클립스를 알아낼 방법이 될 수출되는 다르게 정상입니다.

질문:그것은 왜 그 값에서 나 EditTexts 지속의 대부분의 시간이기 때문하고 유휴 상태에서,아직 그들은 분명 겉보기에 임의의(그리고 종종 불편한)경우?

나는 느낌이에 의해 발생 onStop()호출되는 대신 onPause()(혹은 반대로)특정 경우에,그러나 나의 지식의 이러한 방법은 확실히 없다는 속도 아직입니다.또한,내가 알고 있는 이 문제를 해결할 수 있습을 통해 후 sharedpreferences 파일(또는 이러한 아이디어),하지만 나는 무엇을 알고 싶은 발생를 이해하기 위해서 무엇보다.

상세정보:

-나는 확실하지 않는 경우 이러한 코드와 관련이 있는 질문에서 의미있는 방식으로,그러나 나는 포함하의 조각을 내 onCreate()메소드는 경우 그것은 도움이됩니다.알려면 나는 아무것도 추가 다른 사람:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input_param);

    Intent intent = getIntent();
//Rest of the code just builds the layout from data taken from the intent

-지 않았 재정의 모든 라이프 사이클의 방법(즉onStop(),onResume(),등.) 을 제외한 onCreate().다른 방법을 내는 활동이 있어야 아무 문제로까지 말할 수 있는

도움이 되었습니까?

해결책

나는 문제는 시간 때가"유휴 상태"(즉가를 배경 화면 off)는 안드로이드가 자동으로 청소하고 파괴를 포함한 모든 데이터는 당신 EditTexts.

는 경우 활동가 일시 중지 또는 중지된 시스템을 떨어뜨릴 수 있는 활동을 메모리에서 중 하나에 의해 요구를 완료하기 위하여,또는 단순히 죽이는 그것의 과정입니다.를 표시할 때 다시 사용자에게,그것은 완전히 다시 시작해야 합 및 복원이 이전 상태입니다.

http://developer.android.com/reference/android/app/Activity.html

이 문제를 해결할 수 있습을 재정의 onSavedInstanceState() 방법을 저장할 EditText 값을 다음 onCreate() 당길 것이 그 값을 다시 돌아올 때를 활동입니다.그런 다음 필요에 체크를 참조해야 하는 경우 다시 채울 EditTexts 에서 해당 값을 경우 또는 그들은 null 입니다.에 더 이 .

다른 팁

이것은 아마도 ondestroy 또는 onpause 메소드가 유휴 시간에 호출되는 BECOZ 일 것입니다.ondestroy는 케이스에서 호출 될 것입니다. 메모리가 앱의 사용량이 높습니다.내 의견의 유일한 솔루션은 로컬 DB에서 데이터를 입력하고있는 것처럼 데이터를 저장하고 onResume을 채우는 것입니다.

onpause ()에서 문제를 해결하려면 활동의 정적 변수에서 사용자가 삽입 한 값을 가져 와서 (변수의 수가 있음) 변수와 onresume에 값을 저장해야합니다 () 값을 다시 edittext에 다시 넣으십시오.

package com.zeus.program;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {

    public static String username;
    public static String password;


    EditText usernameET;
    EditText passwordET;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        usernameET = findViewById(R.id.username);
        passwordET = findViewById(R.id.password);
    }


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

        usernameET.setText(username);
        passwordET.setText(password);

    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();

        username = usernameET.getText().toString();
        password = passwordET.getText().toString();

    }   
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top