2011-02-11 9 views
0

나는 새로운 활동을 생성하고 경고 대화 상자를 팝업하는 BootReceiver를 만들었습니다. OK/Cancel을 누르면 해당 활동이 여전히 완전히 닫히지 않습니다. 창 목록 버튼에서도 동일한 것을 볼 수 있습니다. & 창 목록에서 경고 대화 상자를 볼 수 있습니다.활동 계속 실행 - Android

어떤 아이디어가 잘못되었을 수 있습니까?

내 코드는 다음과 같습니다. 확인/취소 후 finish 호출 buttoon protected void onCreate (savedBundle savedInstanceState) { super.onCreate (savedInstanceState);

WindowManager.LayoutParams winParams; 

    getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
    // Windows Attributes 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    winParams = getWindow().getAttributes(); 
    winParams.flags |= (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
      | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

    getWindow().setAttributes(winParams); 

    // Show Popup 
    popup = new AlertDialog.Builder(this) 
    .setCancelable(true) 
    .setPositiveButton("agree", new OnClickListener() { 
     public void onClick(DialogInterface dialog, int arg1) { 

       if(DEBUG) Log.d(LOG_TAG, " AGREE CLICKED" ); 

     finish();}}) 

    .setNegativeButton("disagree", new OnClickListener() { 
     public void onClick(DialogInterface dialog, int arg1) { 

       if(DEBUG) Log.d(LOG_TAG, " DISAGREE CLICKED" ); 
    finish();}}) 

    .setOnCancelListener(
     new DialogInterface.OnCancelListener() { 
      public void onCancel(DialogInterface dialog) { 
       finish(); 
    }}); 

    popup.setIcon(android.R.drawable.ic_dialog_alert); 
    popup.setTitle("title"); 
    popup.setMessage("Message"); 

    dialog = popup.create(); 

    winParams = dialog.getWindow().getAttributes(); 
    winParams.flags |= (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
      | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
    dialog.getWindow().setAttributes(winParams); 

    dialog.setOnDismissListener(AlwaysReqWhenPS); 
    dialog.setOnKeyListener(this);    
    dialog.show(); 

} 


protected void onStop() { 
    if(DEBUG) Log.d(LOG_TAG, " OnStop Called" ); 
    super.onStop(); 
} 

public void onDestroy() { 
    if(DEBUG) Log.d(LOG_TAG, " onDestroy Called" ); 
    super.onDestroy(); 
} 

public void onPause() { 
    if(DEBUG) Log.d(LOG_TAG, " onPause Called" ); 
    super.onPause(); 
} 
+0

윈도우 목록 버튼이란 무엇입니까? 경고 대화 상자의 ok/cancel 버튼은 활동을 어떻게 조작합니까? – Gopinath

+1

부팅시 활동을 시작해서는 안됩니다. 실망스럽고 부팅 프로세스가 상당히 느려집니다. – Falmarri

+0

@Gopinath : 창 목록은 이전에 열었던 활동 목록을 볼 수있는 곳은 HOME 버튼 옆에있는 버튼입니다. 코드 스 니펫을 추가했습니다. – jhlee

답변

2

"창 목록"은 홈 버튼을 길게 누를 때 나타나는 뚜렷한 대화 상자를 의미합니다. 이 창에는 현재 실행중인 응용 프로그램이 아니라 최근에 사용한 응용 프로그램이 표시됩니다.

작업을 마친 후에는 그냥 finish()을 호출하면됩니다. 이것은 주로 수행 할 수있는 모든 것입니다.

Android는 활동의 "가비지 수집"을 자체적으로 관리합니다. 중요한 것은 activity lifecycle에서 배터리를 사용하는 서비스를 onResume(...) 이벤트에 등록하고 onPause(...) 이벤트에서 등록을 다시 등록하는 것과 같이 리소스를 올바르게 할당하고 할당을 해제하는 것입니다.

+0

@ Judy : OK/CANCEL 후에 finish()를 호출하고 코드 스 니펫을 추가했습니다. – jhlee