2013-10-20 6 views
0

웹에서 발견 한 자습서/게시물 중 일부 (또는 stackoverflow)가 구형이므로 안드로이드 프로그래밍 관행에 관한 몇 가지 질문이 있습니다. 그들은 대부분 2010 년부터 2011 년까지 Android 2.1/2.2에 관한 이야기를 나눕니다.안드로이드 몇 가지 질문

1) - 데이터베이스 닫기 : 해당주기에 따라 값을 삽입/업데이트 할주기가 있다고 가정 해보십시오. 데이터베이스의 공통 삽입 기능은 데이터베이스를 시작하고, 데이터베이스를 열고, 내용을 삽입하고 데이터베이스를 닫습니다.

public void addProduct(Product product) { 
     ContentValues values = new ContentValues(); 
     values.put(COLUMN_PRODUCTNAME, product.getProductName()); 
     values.put(COLUMN_QUANTITY, product.getQuantity()); 

     SQLiteDatabase db = this.getWritableDatabase(); 

     db.insert(TABLE_PRODUCTS, null, values); 
     db.close(); 
} 

그리고 내 활동에 내가 추적을 할 수 있습니다 :

다음
DatabaseHandler db = new DatabaseHandler(this); 
for(int i = 0; i <= 100; i++){ 
    Product product = 
    new Product("example", i + 10); 
    db.addProduct(product); 
} 

내 질문은 : 그것은이 경우, 100 배의 데이터베이스 연결을 닫는 문제가 없습니다?

2) -이 주제에서 알 수 있듯이 Is there a unique Android device ID?은 2010 년 이후입니다. 오늘 고유 ID를 얻는 가장 좋은 방법은 무엇입니까? ANDROID_ID입니까? 그리고 왜 고유 한 식별자가 필요한지 물어보기 전에 제품 라이센스에 대한 것임을 알리고 ID에 따라 해당 라이센스를 등록하십시오.

3) - 열기 전에 인 텐트의 플래그를 사용해야합니까? 그렇다면 왜? 나는 보통 다음 코드를 사용합니다 :

Intent A = new Intent(MainActivity.this, OtherActivity.class); 
startActivity(A); 

감사합니다.

+1

별도의 질문으로 별도의 질문을해야합니다. 이것은 사람들이 당신이 물어 본 모든 것에 답할 수없는 개별 질문에 대한 답을 제공 할 수있게합니다. –

답변

3

내 질문은 다음과 같습니다.이 경우 데이터베이스 연결을 종료하는 데 아무런 문제가 없습니다.이 경우 100 번입니까?

먼저 비효율적입니다. 데이터베이스를 한 번여십시오.

둘째, 앱의 여러 지점에서 데이터베이스를 사용하려는 경우 (특히 둘 이상의 스레드가 관련된 경우) 스레드 보안을 위해 모두 공유하는 SQLiteDatabase의 싱글 톤 인스턴스가 있어야합니다. 흔히 실제로는 SQLiteOpenHelper이라는 싱글 톤 인스턴스가되며, 필요에 따라 데이터베이스를 가져옵니다.

오늘 고유 ID를 얻는 가장 좋은 방법은 무엇입니까?

가장 좋은 방법은 시도하지 않는 것입니다. 대신 create unique IDs per app installation.

개봉하기 전에 인 텐트의 플래그를 사용해야합니까?

"열기 직전"이 필요하지 않습니다. Intent을 사용하기 전에 언제든지 Intent에 플래그를 추가 할 수 있습니다.

나는 보통 잘 될 수

코드

이 조각을한다. 이러한 플래그가 필요한 경우 플래그를 사용합니다.

+0

1) - 모든 자습서에서 삽입이 완료되는 방법입니다. db.open()이 표시되지 않습니다. 2) - 어떻게 도움이 될지 모르겠습니다. 앱 설치를 식별하여 고유 ID를 만드는 방법은 무엇입니까? 3) -kk. – user2742861

+0

@ user2742861 : "모든 자습서에서 삽입이 완료되는 방법입니다."- 그래서? 이 자습서가 비효율적으로 일을한다고해서 비효율적으로 일을해야한다는 의미는 아닙니다. "앱 설치를 식별하여 고유 ID를 만드는 방법은 무엇입니까?" - 하이퍼 링크를 클릭하고 블로그 게시물을 읽을 수 있습니다. – CommonsWare