由于在后台android中启动意图而无法返回

可执行文件

这是我的活动Mod_1_1_b。在启动时,此活动将用户带到3秒钟后转到Mod_1_1_c,Mod_1_1_b上有一个用于转到其他活动(主要)的按钮,但是每当我按下该按钮时,它都会先将我带到主要活动,然后立即启动Mod_1_1_c。我试过打电话给finish(); 但不起作用,该意图似乎已经在后台启动。

package com.example.abc;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;

public class Mod_1_1_b extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mod_1_1_b);

        final MediaPlayer mp1 = MediaPlayer
                .create(getBaseContext(), R.raw.yolo); // -<
        mp1.start();
        Handler mHandler = new Handler();
        mHandler.postDelayed(new Runnable() {

            @Override
            public void run() {
                Intent startActivity = new Intent(Mod_1_1_b.this,
                        Mod_1_1_c.class);// -<
                startActivity(startActivity);
                overridePendingTransition(R.anim.slide_right_to_left_1,
                        R.anim.slide_right_to_left_2);
                finish();
            }

        }, 3000L);

    }

    public void back(View view) {
        Intent intent = new Intent(this, Mod_1_1AtoZ.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_left_to_right_1,
                R.anim.slide_left_to_right_2);
        finish();
    }

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
    }

}

XML文件

    <RelativeLayout
        android:layout_width="290dip"
        android:layout_height="290dip"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/b_tile" >
    </RelativeLayout>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:onClick="back"
        android:text="Back" />

</RelativeLayout>
Rod_Algonquin
it first takes me to main activity and then immediately launches Mod_1_1_c

那是因为您将处理程序设置为在3秒钟内执行,因此按下该按钮后,它将更改活动,但仍将执行您的处理程序并更改为活动 Mod_1_1_c

解决方案:

在您的按钮中,back您需要取消处理程序以使其在更改活动后停止执行。

样本:

public void back(View view) {
    timeoutHandler.removeCallbacks(your_runnable);
    Intent intent = new Intent(this, Mod_1_1AtoZ.class);
    startActivity(intent);
    overridePendingTransition(R.anim.slide_left_to_right_1,
            R.anim.slide_left_to_right_2);
    finish();
}

确保您的RunnableHandler具有全局实例。

编辑:

public class Mod_1_1_b extends Activity {


    Handler mHandler; //global instance
    Runnable your_runnable; //global instance

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mod_1_1_b);

        final MediaPlayer mp1 = MediaPlayer
                .create(getBaseContext(), R.raw.yolo); // -<
        mp1.start();
        mHandler = new Handler();
        your_runnable = new Runnable() {

            @Override
            public void run() {
                Intent startActivity = new Intent(Mod_1_1_b.this,
                        Mod_1_1_c.class);// -<
                startActivity(startActivity);
                overridePendingTransition(R.anim.slide_right_to_left_1,
                        R.anim.slide_right_to_left_2);
                finish();
            }

        };

        mHandler.postDelayed(your_runnable , 3000L);

    }

    public void back(View view) {
        mHandler.removeCallbacks(your_runnable);
        Intent intent = new Intent(this, Mod_1_1AtoZ.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_left_to_right_1,
                R.anim.slide_left_to_right_2);
        finish();
    }

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SonarQube服务器由于后台初始化失败而无法启动

失忆由于音频问题而无法启动

由于权限错误而无法启动jstatd

服务由于登录失败而无法启动

在后台线程中启动可运行

由于Android中未完成的语句而无法关闭

Android共享意图无法启动

无法启动Android日历意图

在外壳程序脚本中在后台执行时,QEMU无法启动

Android进程功能无法在后台运行

Android定位服务无法在后台运行

Android短信应用无法在后台运行

Android:从我的布局中拍摄照片而无需启动相机意图

春季启动-由于缺少EmbeddedServletContainerFactory bean而无法启动EmbeddedWebApplicationContext

.NET Core应用由于ErrorCode ='0x80004005:80008083而无法在IIS中启动

游戏无法检查条件并在后台启动

由于无法检测图形设置而无法启动Pycharm

在Android App中在后台处理GoogleFit

由于不再存在的类中的ClassNotFoundException,Android服务无法启动

由于名称中的&而无法移动文件

Android:无法启动服务意图:找不到?

由于mongo退出而无法启动流星应用

由于selinux权限被拒绝而无法启动服务

由于缺少Mime JSON而无法启动rake任务

ApplicationContextException:由于缺少ServletWebServerFactory bean而无法启动ServletWebServerApplicationContext

Spring Boot由于缺少EmbeddedServletContainerFactory bean而无法启动EmbeddedWebApplicationContext

由于git错误而无法启动ember-cli项目

由于NoMethodError而无法启动Rack服务器

由于YAML配置问题而无法启动Filebeat