사용자가 몇 가지 앱 옵션을 가지고있는 MainActivity를 만들었습니다. 그리드 메뉴에 표시되어 이후의 특정 활동에 액세스합니다. 그러나 응용 프로그램이 시작되면 AlertDialog를 사용하여 사용자가 로그인 세부 정보를 입력하고 그리드 레이아웃 정의 바로 뒤에 확장됩니다. 그리드 메뉴에서 항목을 선택할 때마다 (그리고 결과적으로 새로운 활동) 문제가 발생하면 AlertDialog가 다시 팝업됩니다. 어떻게 이것을 피할 수 있습니까?MainActivity로 돌아올 때마다 AlertDialog가 다시 시작됩니다.
또한 MainActivity의 시작 부분 (또는 로그인 이후)부터 시작해야하지만 새 활동이 호출 될 때마다 다시 시작해서는 안되는 업로드 서비스가 있습니다. OptionsMenu를 통해 startService 버튼을 사용하여 일시적으로 문제를 해결할 수 있지만이 문제는 이전 문제와 관련 있다고 가정합니다. 이것은 영구적 인 해결책이 아닙니다.
미리 감사드립니다. 그러나
private SharedPreferences prefs;
private String prefName = "MyPref";
int hasLoggedIn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mm_gridmenu);
SharedPreferences prefs = getSharedPreferences(prefName, MODE_PRIVATE);
hasLoggedIn = prefs.getInt("hasLoggedIn", 0);
if (hasLoggedIn == 0) {
showDialog(SHOW_DIALOG);
prefs = getSharedPreferences(prefName , MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("hasLoggedIn", 1);
editor.commit();
}
의 hasLoggedIn 값이 1로 저장하고 대화가 결코 나올없는 위로 다시 방법 :
편집 : 다음과 같이 나는 getSharedPreferences를 사용했습니다. 난 그걸 해결하기 위해 다시 버튼을 설정했지만,이 응용 프로그램을 최소화하는 것으로 보인다 방지하려고합니다. 해당 동작을 버튼에 추가 할 수 있습니까? (나뿐만 아니라 홈 버튼에 중복 것이다)
@Override
public void onBackPressed() {
prefs = getSharedPreferences(prefName , MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("hasLoggedIn", 0);
editor.commit();
Log.i("hasLoggedIn", hasLoggedIn + "");
return;
}
는 또한,이 조치가 (에 다시에 AlertDialog를 설정) 이후의 활동에 영향을 미칠 것으로 판단된다. 이것에 대한 유효한 대안은 무엇입니까?
코드 붙여 넣기 ... 코드없이 문제를 해결할 방법을 예측할 수 없습니다. – Cristian
@Cristian, 코드를 본 후 제안 사항이 있습니까? 감사. – Cath