startActivity()被android系统调用了无限次

startActivity()被android系统调用了无限次,android,android-intent,android-emulator,Android,Android Intent,Android Emulator,问题:- startActivity()被android系统调用了无限次。下面的代码打开了MainActivity,但随后MainActivity被冻结/挂起,几分钟后android自动关闭 我有两项活动: 注册活动 主要活动 注册过程完成后,我想将用户重定向到主屏幕(即MainActivity),因此我使用以下代码启动活动:-- 但是startActivity()被android系统调用了无数次。我是通过Logcat发现的。logcat输出为:-- 主要活动代码: public cl

问题:- startActivity()被android系统调用了无限次。下面的代码打开了MainActivity,但随后MainActivity被冻结/挂起,几分钟后android自动关闭

我有两项活动:

  • 注册活动
  • 主要活动
  • 注册过程完成后,我想将用户重定向到主屏幕(即MainActivity),因此我使用以下代码启动活动:--

    但是startActivity()被android系统调用了无数次。我是通过Logcat发现的。logcat输出为:--

    主要活动代码:

         public class MainActivity extends Activity {
    AlertDialog.Builder builder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        builder = new AlertDialog.Builder(this);
    
        Button btnEnter = (Button) findViewById(R.id.btnEnter);
        btnEnter.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (RegisterActivity.loggedIn) {
                    startActivity(new Intent(MainActivity.this,
                            AddActivity.class));
                } else {
                    Utility.showAlertDialog(builder, "Please Log In!");
                }
            }
    
        Button btnSettings = (Button) findViewById(R.id.btnSettings);
        btnSettings.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this,
                        RegisterActivity.class));
            }
        });
    
    }
    
        public class RegisterActivity extends Activity {
         protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        builder = new AlertDialog.Builder(this);
        etName = (TextView) findViewById(R.id.etName);
        etEmail = (TextView) findViewById(R.id.etEmail);
        Button btnSubmit = (Button) findViewById(R.id.btnSubmit);
        btnsubmit.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(RegisterActivity.this,
                        MainActivity.class);
                startActivity(intent);
    
            }
        });
        }
    }
    
    注册表活动代码:

         public class MainActivity extends Activity {
    AlertDialog.Builder builder;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        builder = new AlertDialog.Builder(this);
    
        Button btnEnter = (Button) findViewById(R.id.btnEnter);
        btnEnter.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (RegisterActivity.loggedIn) {
                    startActivity(new Intent(MainActivity.this,
                            AddActivity.class));
                } else {
                    Utility.showAlertDialog(builder, "Please Log In!");
                }
            }
    
        Button btnSettings = (Button) findViewById(R.id.btnSettings);
        btnSettings.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this,
                        RegisterActivity.class));
            }
        });
    
    }
    
        public class RegisterActivity extends Activity {
         protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        builder = new AlertDialog.Builder(this);
        etName = (TextView) findViewById(R.id.etName);
        etEmail = (TextView) findViewById(R.id.etEmail);
        Button btnSubmit = (Button) findViewById(R.id.btnSubmit);
        btnsubmit.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(RegisterActivity.this,
                        MainActivity.class);
                startActivity(intent);
    
            }
        });
        }
    }
    

    这个logcat输出是连续的,直到我关闭模拟器!如果我不关闭模拟器,android会自动重启。简单地说,系统挂起是因为它无限地调用startActivity()

    其实是我的错。。!startActivity()被无限调用,因为当我完成活动时,我又开始了另一个活动!。。但我感谢所有的响应者的善意帮助。非常感谢你

    发布更多代码。我猜你是在循环中调用performClick之类的。或者是在你的家庭活动中尝试删除finish()请发布注册活动的完整代码我们可以这样做吗?我删除了finish()但不起作用