안녕하십니까.
정성훈.해미입니다.
어플이 제거될 경우에는 관련 파일이 모두 없어지기때문에
유지하실려면 다른 꼼수가 필요하지만
그러면 사용자 휴대폰에 쓰레기 파일이 남게되서
추천하지 않습니다.
일반적으로 설정파일(INI파일 등)로 저장을 할 경우
어플이 제거되지 않는 한 그대로 유지 됩니다.
어플이 업데이트 되어도 유지되니 구현하시던 INI파일 형태로 하셔도 됩니다.
(추신: 어플 폴더 내에 생성한 유저 파일은 유지되는지 확인 못했네요)
설정값이 초기화 되는 문제는 여러거지 원인이 있을 수 있겠지만
프로젝트 옵션(배포 방법, 디버그/릴리즈)이 다를 경우에
설정 파일 위치가 달라져서 그럴수도 있습니다.
getSharedPreferences함수를 이용하면
해당 어플에 대한 사용자 환경 설정을 저장하고 불러올 수 있습니다.
어플이 제거되지 않는 한 유지됩니다.
제가 구현하여 사용하고 있는 코드를 살짝 바꿔서 공유해 드립니다.
도움이 되시길 바랍니다.
*추신: C++소스입니다.
//---------------------------------------------------------------------------
// 환경 설정 불러오기 함수
//---------------------------------------------------------------------------
void c_Cfg::Load()
{
#if defined(__ANDROID__) && defined(__arm__)
_di_JSharedPreferences Prefs;
Prefs = SharedActivity()->getSharedPreferences(StringToJString("MyApp"), TJActivity::JavaClass->MODE_PRIVATE);
try {
UserID = Prefs->getString(StringToJString("User ID"), StringToJString(""));
UserPW = Prefs->getString(StringToJString("User PW"), StringToJString(""));
} catch (...) {
UserID = "";
UserPW = "";
}
#endif
}
//---------------------------------------------------------------------------
// 환경 설정 저장 함수
//---------------------------------------------------------------------------
void c_Cfg::Save()
{
#if defined(__ANDROID__) && defined(__arm__)
_di_JSharedPreferences Prefs;
_di_JSharedPreferences_Editor Editor;
Prefs = SharedActivity()->getSharedPreferences(StringToJString("MyApp"), TJActivity::JavaClass->MODE_PRIVATE);
Editor = Prefs->edit();
Editor->putString (StringToJString("User ID"), StringToJString(UserID));
Editor->putString (StringToJString("User PW"), StringToJString(UserPW));
Editor->apply();
#endif
}
// 사용법
FormCreate 이벤트에서 설정 불러오기 함수를 호출합니다.
FormCloseQuery 이벤트에서 설정 저장 함수를 호출합니다.
초보자 님이 쓰신 글 :
: USB 디버깅 상태로 프로그램을 테스트 중입니다.
:
: 프로그램에서는 <아이디><비번>을 입력받아 서버로 접속하여 인증처리를 하고 있습니다.
: 그러다 보니 프로그램을 구동할 때마다 매번 <아이디><비번>을 입력해야 하는 번거로움이 생겼습니다. 그래서 접속이 한 번이라도 이루어 진 후에는 계정을 묻지 않도록 ini파일로 계정을 보관했다가 재사용 하도록 조치했습니다.
:
: 문제는 프로그램을 수정한 뒤 실행(Deploy)하면 원래 보관했던 ini파일이 없어지는 겁니다.
:
: (1) 원래 그런 건지요?
: 원래 그런 거라면 계정 값을 어떤 특정위치에 보관했다가 재사용 한다든지 하는 방법이 있을까요?
: 즉, 프로그램이 제거되거나 변경되어도 임의의 위치에 보관된 값은 그대로 유지되게 한다든지 하는 꼼수라도 있는지요?
:
: (2) ini파일에 보관하는 방법이 아닌 다른 방법이 있는지요?
:
: 여기 저기 뒤져가면서 어떻게 해보려는데... 아는 것도 없거니와 참고할 만한 자료도 별로 없어서 진전이 없습니다.
: 알고 보면 별 거 아닐 거 같은데 말이죠...
:
: 미리 감사드립니다. (꾸벅)
:
|