android:无法停止活动

时间:2010-06-26 18:02:55

标签: android android-emulator

我是android新手。我有一个loginActivity,用于验证用户编号,然后启动“搜索”。

在运行时,我看到搜索活动即将出现(在用户验证之后),但是android在停止loginActivity时遇到了问题。

我收到了“java.lang.runtimeexception:无法停止活动{com.insruance / com.insurance.LoginActivity}:android.app.SuperNotCalledException:Activity 在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());
     }

} }

1 个答案:

答案 0 :(得分:7)

更多的挖掘指向了我。

我没有在覆盖onStop中调用super.onStop()。

我原本以为Eclipse在为我创建onStop时会编写这一行。