2014-09-03 2 views
0

그래서 대형 일련의 문자열을 저장하려는 응용 프로그램이 있으며 응용 프로그램과 함께 제공되기를 원합니다. 안드로이드의 onCreate 메소드에서, 방금 거대한 (몇 백 줄의) String [] initializer가 있어야합니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?응용 프로그램에 데이터를 미리로드하는 가장 좋은 방법은 무엇입니까?

나는 이것들을 조금씩 그룹화하고 저장하는 방법을 생각하고 있었지만 배열에 많은 문자열을 인스턴스화했습니다. 내가 이미 만들 수있는 방법이 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

+0

그것을 할 '방법', 당신은 strings.xml의 파일에 저장할 수 있습니다에 대한 토론의 비트를 가지고 – Eenvincible

답변

0

AsyncTask (별도 스레드)로 백그라운드에서 수행 할 수 있습니다. 이와 같이 :

private class InitializeString extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected void doInBackground(Void... params) { 

     //do your initializing 

    } 

    @Override 
    protected void onPostExecute(Void... params) {} 

    @Override 
    protected void onPreExecute() {} 

    @Override 
    protected void onProgressUpdate(Void... params) {} 
} 

또한 이름이 중요합니까? 당신은 다음과 같은 문자열의 ArrayList를을 만들 수 있습니다

문자열 값이 하드하고 동적으로 추가하지 않는 경우
ArrayList<String> myListOfStrings = new ArrayList<String>(); 
myListOfStrings.add("String 1"); 
myListOfStrings.add("String 2"); 
    ... 

, 당신은 또한 파일을 strings.xml의 그들 모두를 추가 할 수 있습니다.

0

만약 그것이 단지 몇 백 라인이라면, 나는 너무 걱정하지 않을 것입니다. 당신은 그것들을 '하드 코딩'할 수 있고, 수백 개의 문자열을 생성 할 수 있으며, 생성자가 읽어들이는 보조 '플랫 파일'에 넣을 수도 있습니다. 어느 쪽이든 그 결과는 몇백 개의 문자열입니다 ...

속도 - 하드 코드를 위해.

이 이전 문제는 데이터가없는 경우 너무 많은 ... 별도의 개체에 대한 how do i preload a hashmap in an object(without put method)?