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

Posted

技术标签:

【中文标题】另一个活动的Android意图被多次执行【英文标题】:Android intent to another activity being executed multiple times 【发布时间】:2015-01-03 19:52:38 【问题描述】:

我的意图是,当用户触摸启动屏幕活动上的任何位置时,他们会被定向到图库活动,这在大多数情况下似乎都可以正常工作,并且在运行应用程序时会按预期运行,直到按下后退按钮。按下时需要多次按下才能返回启动画面。

使用 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 的副本。

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

我不明白为什么会发生这种情况,而且我在研究方面有点死胡同,任何帮助将不胜感激。

谢谢你, 达蒙。

【问题讨论】:

看看这个答案:***.com/a/8182589/4224337 【参考方案1】:

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

【讨论】:

以上是关于另一个活动的Android意图被多次执行的主要内容,如果未能解决你的问题,请参考以下文章

onClick 中的第二个意图在第一个之前执行

Android:调用相机意图后活动被破坏

Android:调用相机意图后活动被破坏

返回堆栈和意图标志不起作用

Android中的意图数据传递[重复]

当通过意图从相机应用程序返回时,Android 活动被破坏