标签: android-handler

在Handler中执行所有已安排的(postDelayed)runnable

我使用一个Handler,它发布了一些Runnablevia postDelayed(r, DELAY_TIME),但我需要Runnables在发布新的via之前执行所有操作postDelayed.

任何好的想法如何尽可能简单地实现这一点?

编辑:

我希望它基本上像这样:

Runnable r = new Runnable() {
    // Do some fancy action
};

if (mHandler.runnablesScheduled) {
    mHandler.flushAllScheduledRunnables();
}
mHandler.postDelayed(r, DELAY);
Run Code Online (Sandbox Code Playgroud)

android handler runnable android-handler

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

活动结束后线程是否会死?

如果我启动后台线程,如果在线程终止之前从finish()开始的活动将会发生什么.线程是否会终止,还是会保持活着状态?

 new Thread(new Runnable() {
                public void run() {
                    while (mProgressStatus > 0) {


                        // Update the progress bar
                        mHandler.post(new Runnable() {
                            public void run() {
                                progressbar.setProgress(mProgressStatus);
                            }
                        });
                    }
                }
            }).start();
Run Code Online (Sandbox Code Playgroud)

java android android-handler

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

Looper 如何知道将消息发送给 Handler?

问题是,我在哪里告诉我的 Thread 将mHandler用于Looper

谢谢你。我正在使用以下代码:

class LooperThread extends Thread {
    public Handler mHandler;
    public void run() {
      Looper.prepare();

      mHandler = new Handler() {
          public void handleMessage(Message msg) {
              // process incoming messages here
          }
      };

      Looper.loop();
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-handler

5
推荐指数
2
解决办法
2125
查看次数

AlarmManager 与 Handler.postDelayed

在服务中延迟执行的方法是使用handler.postdelayed 或Alarmmanager。利弊是什么。

我有 2 个服务 (a) 进行后台处理并通过广播消息更新 UI (b) 进行一些计算并每 5 秒更新一次主屏幕小部件。

谢谢

android widget alarmmanager android-service android-handler

5
推荐指数
1
解决办法
2423
查看次数

用于调度固定速率任务的处理程序或计时器

我正在开发一个应用程序,它要求它每隔x分钟上线并检查一些新数据.为防止繁重的网络和数据使用,任务应以固定速率运行,但这种解决方案的最佳使用方法是什么?一个Handler或一个Timer对象?

multithreading android android-handler

5
推荐指数
2
解决办法
2062
查看次数

创建自定义完成/回调处理程序以在HTTP请求完成后返回对象

我是一名iOS开发人员,开始学习Android.在Swift中,创建一个完成处理程序非常简单,但我仍然找不到用Java编写的方法.

很抱歉,如果这个问题对于StackOverflow人来说太棒了.

问题

我正在创建一个类来处理我使用Retrofit完成的所有Http请求.

我让这个功能是我的 RequestHelper.java

public static void checkEmailAvailability(String email) {
    MyWebServiceAPI serviceAPI = retrofit.create(MyWebServiceAPI.class);

    Call<APIResults> call = serviceAPI.checkEmailAvailability(getAuthenticationHeader(), RequestBody.create(MediaType.parse("text/plain"), email));

    call.enqueue(new Callback<APIResults>() {
        @Override
        public void onResponse(retrofit.Response<APIResults> response, Retrofit retrofit) { 
              //Parse Response Json
              //Get some value and place it inside an object
             //ANDI WOULD LIKE RETURN SOME BOOLEAN VALUE AND SOME OTHER STRING
        }

        @Override
        public void onFailure(Throwable t) {
              //I WOULD LIKE A BOOLEAN VALUE HERE            
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它 MainActivity

RequestHelper.checkEmailAvailability("user@user.com");
Run Code Online (Sandbox Code Playgroud)

现在该函数仍然无效但我希望它在on onResponseonFailure …

java android event-handling android-handler androidhttpclient

5
推荐指数
1
解决办法
593
查看次数

java.lang.SecurityException:请求com.android.providers.downloads中的代码在进程my.package中运行

在不同版本的Android和设备上,RecyclerView Adapter中出现错误.我每秒检索有关下载进度的信息,并显示项目布局的百分比.

    @Override
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
    final Download item = downloads.get(position);
    holder.titleTv.setText(downloads.get(position).getTitle());
    Cursor cursor = downloadManager.query(
            new DownloadManager.Query().setFilterById(item.getDownloadId()));

    if (cursor != null && cursor.moveToNext()) {
        int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
        if (status == DownloadManager.STATUS_RUNNING
                || status == DownloadManager.STATUS_PENDING)
            new Runnable() {
                @Override
                public void run() {
                    Cursor c = downloadManager.query(
                            new DownloadManager.Query()
                                    .setFilterById(item.getDownloadId()));
                    float percent = 100;
                    if (c != null) {
                        if (c.moveToNext()) {
                            int downloadedBytes = c.getInt(c.getColumnIndex(
                                    DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)
                            );
                            int totalBytes = c.getInt(c.getColumnIndex( …
Run Code Online (Sandbox Code Playgroud)

java android listadapter android-handler android-download-manager

5
推荐指数
0
解决办法
761
查看次数

如何避免由于自定义静态处理程序类导致的内存泄漏?

我的自定义处理程序类中发生了某些内存泄漏,但不确定如何修复它.在线检查了几个例子,但没有什么是我的代码特定的,所以不知道如何去做:

private val startupCallback = object: RetryCallback(NUMBER, DELAY) {
        override fun onRetry(retryCount: Int) {

            mySdkApi.applicationStartup(this)
        }

        override fun onCompleted(): Boolean {
            updateStatus(Callback.Status.StartUpSDK)

            return true
        }

        override fun onFailed(e: MyException?) {
            updateStatus(Callback.Status.StartUpSDK, "", e)
        }
    }
Run Code Online (Sandbox Code Playgroud)

Android工作室不断提示"此处理程序类应该是静态的,否则可能会发生泄漏".任何想法如何去做?

android memory-leaks kotlin android-handler

5
推荐指数
1
解决办法
241
查看次数

如何解决kotlin中的期望类主体错误

编码:

var shouldStopLoop = false

val handler = object : Handler()
val runnable = object: Runnable            //error occurs here
{
    override fun run() {
        getSubsData()
        if(!shouldStopLoop)
        {
            handler.postDelayed(this, 5000)
        }
    }
}

handler.post(runnable)
Run Code Online (Sandbox Code Playgroud)

Expecting a class body尝试创建val runnable.

android runnable kotlin android-handler

5
推荐指数
2
解决办法
3636
查看次数

Android Handler.createAsync().它是如何工作的?

该文档说它将“创建一个新的处理程序,其发布的消息和可运行对象不受同步障碍的影响,例如显示 vsync。”

这是什么意思?什么时候应该使用 createAsync()?

android android-handler

5
推荐指数
1
解决办法
519
查看次数