2012-06-29 5 views
0

저는 자신 만의 배경을 선택할 수있는 라이브 배경 화면을 가지고 있으며 파일 경로가 존재하면 응용 프로그램 검사를 즉시 시작합니다. 그렇지 않으면 검은 색 화면 만 그려야합니다. 것은, 내가 전화를 다시 시작할 때마다 배경이 그려지지 않지만 라이브 벽지 미리보기에서 그려집니다.LiveWallpaper 파일이 전화 시동시에 존재합니다

나는 미디어 스캐너 또는 모든 디렉토리가 아직 마운트되지 않았 음을 의심 스럽지만 어떻게해야합니까?

+0

당신이 당신의 라이브 배경 화면하는 경우에 파일의 낮은 해상도 사본을 고려한 (단지 물리적으로 외부 저장 장치를 밤은 외부 저장 매체로 appearantly 같은 일을) 실제 외부 미디어 없이도 작동하는 것 같다 기본적으로 이미지를 캐싱하는 이미지가 설정됩니까? 배경 화면에 원본 이미지가 이미 포함되어 있으므로 미디어 스캐너가 간섭하지 않습니다. – gkiar

+0

@iKiar 음, 이해가 안됩니다. 내가 선택한 이미지를 어떻게 든 캐싱해야한다는 것을 의미합니까? 요점은 사용자가 휴대 전화에서 이미지를 선택할 수 있기 때문입니다. – Aron

+1

죄송합니다. 더 명확히하려고 노력하겠습니다. 사용자가 자신의 로컬 파일에서 이미지를 선택하면 배경으로 설정하는 과정에서 응용 프로그램의 로컬 리소스에 캐시 된 파일을 만들 것을 제안합니다. 그렇게하면 시작시 즉시 사용할 수 있습니다. 사용자가 이미지 변경을 요청하면 이전에 있던 캐시 파일을 새 파일로 덮어 씁니다. – gkiar

답변

0

미리보기를 클릭 할 때마다 및 배경 화면을 설정할 때마다 배경 엔진이 만들어집니다. 그래서 문제는 엔진에있는 변수에 파일 경로가 있어야한다는 것입니다. 이 변수를 클래스 수준으로 만듭니다. 그것은 작동 할 것이다

+0

고마워,하지만 그게 문제가 아니야. 이미지 배경은 미리보기에서 다시 시작될 때까지 홈 스크린에서 잘 작동합니다. 경로는 SharedPreferences 데이터베이스에 저장됩니다. – Aron

+0

나는 똑같은 문제에 직면 해있다. 내가 한 것은 onSharedPreferenceChanged()입니다. 키를 확인하고 있습니다. key가 null의 경우, 모든 데이터를 우선 순위로부터 취하고있다. 엔진을 만들 때 전화를 다시 시작하면 키가 null로 전달됩니다. –

0

나는 동일한 문제점을 직면했다. 내가 한 것은 onSharedPreferenceChanged()입니다. 키를 확인하고 있습니다. key가 null의 경우, 모든 데이터를 우선 순위로부터 취하고있다. 엔진이 생성 된 전화를 다시 시작하면 키가 null로 전달됩니다.

관련 문제