我有一个具有两个活动的android应用程序,MainActivity
是应用程序的开始屏幕,它具有一个按钮,用于启动进入CameraActivity
的意图,执行此操作的代码为:>
startButton = findViewById(R.id.button_start);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), CameraActivity.class);
startActivity(i);
}
});
但是,当我启动应用程序并从MainActivity
开始并单击startButton
时,该应用程序会将我直接直接发送回MainActivity
。之后,在重新创建的startButton
上单击MainActivity
的第二次尝试,我被重定向到CameraActivity
。
在日志中,我看到,startButton
的第一次单击会尝试打开CameraActivity
,但会退回到MainActivity
,而第二次尝试会打开{ {1}}成功。
答案 0 :(得分:3)
考虑到MainActivity中的startButton,请尝试将“ MainActivity.this”而不是“ getApplicationContext()”
startButton = findViewById(R.id.button_start);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, CameraActivity.class);
startActivity(i);
}
});
第二,确保CameraActivity类中没有多余的意图将您重定向到主要活动。请删除它们(如果有的话),然后使用以下代码完成CameraActivity类,
someBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CameraActivity.this.finish();
}
});
答案 1 :(得分:2)
也许您在第二项活动CameraActivity.java
上遇到一些问题?也许这就是为什么它仅在第二次尝试后(崩溃或隐藏)打开的原因。在startActivity(i);
方法调用finish();
之后添加,然后看看会发生什么。仔细检查您的CameraActivity.java
和Manifest.xml
为什么还要在getApplicationContext()
中使用new Intent(getApplicationContext(), ...);
?如果在Activity
中调用它,则应使用ActivityName.this