Android意图多次执行另一个活动

时间:2015-01-03 19:52:39

标签: android android-intent android-logcat

我的意图是,当用户触摸启动画面活动的任何地方时,他们会定向到画廊活动,这似乎在大多数情况下正常工作,并且在运行应用程序时按预期执行,直到后退按钮为止按下。按下时需要多次按下才能返回闪屏。

使用logcat我能够发现意图被多次运行但是我无法理解为什么,这里是意图的方法。

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;            
        }

    });
}

我在执行意图并打开新活动(图库)时进行了检查,显示的消息是"闪屏执行"和"画廊执行"分别。 这是logcat的副本。

执行启动画面/ 画廊已执行/ 启动画面/ 画廊已执行/

我无法理解为什么会出现这种情况,而且我在某种程度上处于一种前瞻性的研究中,任何帮助都会受到高度赞赏。

谢谢你, 戴蒙。

1 个答案:

答案 0 :(得分:1)

onTouch()被多次调用,因为它识别多种触摸输入(DOWN,UP,MOVE ...)。您可以通过编写HERE的示例或将布局侦听器更改为OnClickListener来解决此问题,这将更容易实现(代码更少)。