java - 在飞溅 Activity 中按下后退按钮时如何完成其​​他 Activity ?

标签 java android

所以我正在处理类似幻灯片的项目,但我的问题是,当我在幻灯片放映中间时,我想返回到我的主要 Activity ,在那里我的幻灯片将开始使用智能手机上的后退按钮。发生的事情是,我一按下后退按钮它就会返回,但其他幻灯片将在我在 handler.postDelayed(r1, 3000); 中设置的 3 秒后继续播放。请帮忙。谢谢

public class Dad1 extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dad1);

        Runnable r1 = new Runnable() {
            @Override
            public void run() {
                Intent i = new Intent(getApplicationContext(), Dad2.class);
                startActivity(i);
                finish();
            }
        };
        Handler handler = new Handler();
        handler.postDelayed(r1, 3000);

    }
}

最佳答案

您可以做的是将 Handler 对象保持在 Activity 级别。当按下后退按钮时,只需取消 Handler callbacks。所以在那种情况下,您的处理程序的 run 方法将不会被调用。

请在下面找到示例代码:

   public class Dad1 extends AppCompatActivity {

private Handler handler;

private Runnable myRunnable;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initRunnable();
    handler.postDelayed(myRunnable,3000);
}

private void initRunnable() {
    myRunnable = new Runnable() {
        @Override
        public void run() {
            Intent i = new Intent(getApplicationContext(), Dad2.class);
            startActivity(i);
            finish();
        }
    };
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    if(handler!=null){
        handler.removeCallbacks(myRunnable);
    }
}

关于java - 在飞溅 Activity 中按下后退按钮时如何完成其​​他 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45901239/

相关文章:

java - Servlet 和 JSP 还是 Android?

java - 在 android studio 上创建新项目时出现 "Could not create an instance of Tooling API implementation using the specified Gradle distribution"错误

java - Google Drive 更新时 GCM 通知?

java - 如何在多个方法之间共享一个变量?

java - 如何从另一个 Runnable 类更新 java GUI? java

java - 使用 Google Maps API 部署 Android 应用程序时出错

java - 如何在Spring Boot应用程序中设置变量instrumentationKey以进行a​​zure监控

java - 使用Picasso从firebase获取图像问题

android - 如何在 firebase 数据库中搜索(SELECT 和 WHERE)?

java - 从 BroadcastReceiver 转到上一个 Activity ?