Android 意图另一个 activity 被执行多次
Android intent to another activity being executed multiple times
我的意图是,当用户触摸启动画面上的任何地方时 activity 他们会被定向到图库 activity,这在大多数情况下似乎工作正常并且在运行应用程序时确实如此正如预期的那样,直到按下后退按钮。按下时需要多次按下才能 return 到启动画面。
使用 logcat 我能够发现 Intent 被多次运行但是我无法理解为什么,这是 Intent 的方法。
private void FullScreenOnTouchEvent() {
LinearLayout layout = (LinearLayout) findViewById(R.id.activity_splashscreen_layout);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
startActivity(new Intent(Splashscreen.this, Gallery.class));
Log.d("Splashscreen", "splashscreen executed");
return true;
}
});
}
我在执行意图时进行了检查,新的 activity(图库)已打开,显示的消息分别为 "splashscreen executed" 和 "gallery executed"。
这是 logcat.
的副本
启动画面已执行/
画廊已执行/
启动画面执行 /
图库已执行 /
我不明白为什么会这样,而且我的研究有点死胡同,任何帮助将不胜感激。
谢谢,
达蒙.
onTouch() 被多次调用,因为它可以识别多种触摸输入(向下、向上、移动...)。您可以通过编写的示例 HERE or change layout listener to the OnClickListener 来解决此问题,这将更易于实现(代码更少)。
我的意图是,当用户触摸启动画面上的任何地方时 activity 他们会被定向到图库 activity,这在大多数情况下似乎工作正常并且在运行应用程序时确实如此正如预期的那样,直到按下后退按钮。按下时需要多次按下才能 return 到启动画面。
使用 logcat 我能够发现 Intent 被多次运行但是我无法理解为什么,这是 Intent 的方法。
private void FullScreenOnTouchEvent() {
LinearLayout layout = (LinearLayout) findViewById(R.id.activity_splashscreen_layout);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
startActivity(new Intent(Splashscreen.this, Gallery.class));
Log.d("Splashscreen", "splashscreen executed");
return true;
}
});
}
我在执行意图时进行了检查,新的 activity(图库)已打开,显示的消息分别为 "splashscreen executed" 和 "gallery executed"。 这是 logcat.
的副本启动画面已执行/ 画廊已执行/ 启动画面执行 / 图库已执行 /
我不明白为什么会这样,而且我的研究有点死胡同,任何帮助将不胜感激。
谢谢, 达蒙.
onTouch() 被多次调用,因为它可以识别多种触摸输入(向下、向上、移动...)。您可以通过编写的示例 HERE or change layout listener to the OnClickListener 来解决此问题,这将更易于实现(代码更少)。