2010-06-26 2 views
2

나는 안드로이드를 처음 사용하고 있습니다. loginActivity는 사용자 번호를 확인한 다음 "검색 활동"을 시작합니다.android : 활동을 중단 할 수 없습니다.

런타임에 (사용자가 검증 된 후) 검색 활동이 나타나지만 안드로이드가 loginActivity를 중지하는 데 문제가있는 것 같습니다.

나는 "java.lang.RuntimeException가 점점 오전 : android.app.SuperNotCalledException : 활동 {com.insruance/com.insurance.LoginActivity} 중지 할 수 없습니다 android.app.ActivityThread.performStopActivityInner에서 활동 을 (ActivityThread합니다. java : 3413) "

누군가 내가 잘못하고있는 것을 지적 할 수 있다면 정말 고맙겠습니다.

코드 : 조금 더 파고이 저를 지적

public class LoginActivity extends Activity{ 

DatabaseWrapper myDbHelper; 
private String agentNumber; 
private OnClickListener btnClickListner = new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
    // TODO Auto-generated method stub 
    // = new DataBaseHelper(); 
    try { 

    Log.d("LoginActivity->onClick", "Before findByID"); 
    EditText editText = (EditText)findViewById(R.id.txtUserNumber); 
    Log.d("LoginActivity->onClick", "After findByID"); 
    agentNumber = editText.getText().toString(); 
    String msg = ""; 
    AgentDbHelper agentHelper = new AgentDbHelper(myDbHelper.getDatabaseHandle()); 
    Log.d("LoginActivity->onClick", "Before agentIDExists");  
    if (agentHelper.agentIDExists(agentNumber)) 
    msg = "Login success"; 
    else 
    msg = "Login failed"; 
    Log.d("LoginActivity->onClick", "After agentByID"); 
    myDbHelper.closeDatabase(); 
    myDbHelper = null; 
    Toast.makeText(getBaseContext(), 
     "User " + agentNumber + " found!", 
     Toast.LENGTH_LONG).show(); 
    callSearchActivity(); 
    } 
    catch(SQLException sqlEx) 
    { 
    Log.d("login - onclick", sqlEx.toString()); 
    } 
    catch (Exception e) { 
    // TODO: handle exception 
    Log.d("login - onclick", e.toString()); 
    } 
    } 
}; 

private void callSearchActivity() 
{ 
    Intent intent = new Intent(getBaseContext(), SearchActivity.class); 
    Bundle bun = new Bundle(); 
    bun.putString("agentNumber", agentNumber); 
    intent.putExtras(bun); 
    startActivity(intent); 
} 

@Override 
public void onStop() { 
    try { 
    Log.d("In LoginActivity->onStop", "about to close myDbHelper"); 
    if (myDbHelper != null) 
    { 
    myDbHelper.closeDatabase(); 
    Log.d("In LoginActivity->onStop", "after myDbHelper is closed"); 
    } 
    } catch (Exception e) { 
    // TODO Auto-generated catch block 
    Log.d("In LoginActivity->onStop exeption", e.toString()); 
    //e.printStackTrace(); 
    } 
} 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try {   
     setContentView(R.layout.login); 
     Button loginButton = (Button)this.findViewById(R.id.btnLogin); 
     loginButton.setOnClickListener(btnClickListner); 
     myDbHelper = new DatabaseWrapper(this); 
     myDbHelper.openDatabase(); 
     } 
     catch(Exception e) { 
     Log.e("ERROR", "ERROR IN CODE:"+e.toString()); 
    } 

} }

답변

7

.

오버라이드 된 onStop 내에서 super.onStop()을 호출하지 않았습니다.

나를 위해 onStop을 만들 때이 줄이 스크립트로 작성되었다고 생각했을 것입니다.

+0

Eclipse는 수퍼 메소드를 호출하지 않는다는 경고를 표시 할 수 없습니다. Android의 요구 사항이며 플러그인에 코딩되어 있지 않습니다. – ognian

+0

그것의 VS 숙취, IDE가 많이 할 것으로 기대. Eclipse에 익숙해지기. –