机器人 : Unable to stop activity

标签 android android-emulator

我是安卓新手。我有一个 loginActivity,它验证用户号码,然后启动“searchactivity”。

在运行时,我看到搜索 Activity 出现(在用户验证后),但 android 在停止 loginActivity 时遇到问题。

我收到“java.lang.runtimeexception:无法停止 Activity {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());
     }

}

最佳答案

多一点挖掘让我明白了这一点。

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

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

关于机器人 : Unable to stop activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3124965/

相关文章:

android - android studio 中的模拟器已过期错误

Android ListView setOnItemClickListener 不工作

Android 模拟器 - TrafficStats.getUidTxBytes(uid)

android - 如何修复 "Failed to sync vcpu reg"错误?

使用 MpAndroidChart api 饼图 api 时出现 java.lang.IllegalArgumentException : DrawerLayout must be measured with MeasureSpec. EXACTLY.error

javascript - 在第一次加载页面时,Android Chrome 上永远不会触发 Touchstart 事件

android - 通知点击显示唯一数据问题

android - 何时使用 fragment backstack 与单独的 Activity ?

安卓工作室错误 : cannot connect to daemon

Android Studio 模拟器未打开。显示 "enable VT-x in your BIOS settings"