相关疑难解决方法(0)

如何停止Handler Runnable?

我在以下程序中使用处理程序,我想在i = 5时停止它,但处理程序不会停止并连续运行.

   b1.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            handler = new Handler();
           runnable = new Runnable() {
                 public void run() {

                    try {
                        Toast.makeText(getApplicationContext(), "Handler is working", Toast.LENGTH_LONG).show();
                        System.out.print("Handler is working");

                       if(i==5){
                           //Thread.currentThread().interrupt();
                            handler.removeCallbacks(runnable);


                            System.out.print("ok");
                                        Toast.makeText(getApplicationContext(), "ok", Toast.LENGTH_LONG).show();
                        }
                       i++;
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } 
                   handler.postDelayed(this, 5000); 

               }
           };
           handler.postDelayed(runnable, 5000);
           //return;
        }
    });
Run Code Online (Sandbox Code Playgroud)

java performance multithreading android android-handler

33
推荐指数
2
解决办法
6万
查看次数

onBackPressed杀死活动中的处理程序 - Android

如您所见,我有这个PlayLesson_01活动,它同时显示图像和音频.此活动有两个处理程序,一个用于控制图像和音频,另一个将完成课程并返回上一个活动(课程菜单).

目标:单击硬后退按钮返回上一个活动并停止播放图像和音频.

问题:当我点击"Back"时,我可以回到上一个活动,但音频仍在播放.我无法停止杀死在活动中启动的处理程序.

问题:如何彻底杀死或停止这些处理程序?

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.ViewSwitcher.ViewFactory;

public class PlayLesson_01 extends Activity implements OnItemSelectedListener,
    ViewFactory, Runnable {

// Setting up images
// Keeping all Images in array references to our images
public Integer[] mThumbIds = { …
Run Code Online (Sandbox Code Playgroud)

android handler android-activity

12
推荐指数
1
解决办法
1万
查看次数

如何在 Android 中创建生命周期感知处理程序?

首先,我知道如何创建Handler。

我正在开发一个项目,我正在Handler使用postDelayed. 有时,应用程序崩溃是因为Activity 被销毁并且处理程序内的任务在 Activity destroy 后执行

我正在寻找 Handler 的替代方案,它可以在延迟后执行,并且它可以是生命周期感知的,这样应用程序就不会崩溃。

我知道如何取消处理程序(删除处理程序或取消活动的 onDestroy/onStop 方法内的处理程序),这里是相同的链接。但我并不是在寻找这些解决方案。如果可以的话,任何替代方案都将是更好的解决方案。

提前致谢!

android android-lifecycle kotlin android-handler

6
推荐指数
1
解决办法
2589
查看次数