startActivity()被android系统调用了无限次
问题:- startActivity()被android系统调用了无限次。下面的代码打开了MainActivity,但随后MainActivity被冻结/挂起,几分钟后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
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()但不起作用