Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中启动后台线程_Android - Fatal编程技术网

如何在Android中启动后台线程

如何在Android中启动后台线程,android,Android,这可能是个愚蠢的问题,但我还是要问 如何在不使用AsyncTask、Handler或Service或任何其他Android提供的结构的情况下从UI线程启动后台线程?我想创建一个新线程来进行一些位图处理,并且考虑到AsyncTask中报告的bug,我希望避免这些类。我知道它们是谷歌推荐的任务背景设置方法,但让我们假装我不能使用它们……只是为了好玩。:) 如果不可能,我想知道原因。如果是,我该怎么做?您可以尝试使用线程 Thread initBkgdThread = new Thread(new R

这可能是个愚蠢的问题,但我还是要问

如何在不使用AsyncTask、Handler或Service或任何其他Android提供的结构的情况下从UI线程启动后台线程?我想创建一个
新线程
来进行一些位图处理,并且考虑到AsyncTask中报告的bug,我希望避免这些类。我知道它们是谷歌推荐的任务背景设置方法,但让我们假装我不能使用它们……只是为了好玩。:)


如果不可能,我想知道原因。如果是,我该怎么做?

您可以尝试使用
线程

Thread initBkgdThread = new Thread(new Runnable(){
     public void run(){


         //Things that you wanted to do in background here.

      }
});
initBkgdThread.start();

您可以从主UI线程启动
新线程
,以便
位图
处理无问题。它将执行您需要它执行的操作,并且不会以任何方式阻塞主UI线程。但是,您不能直接从新创建的线程操作UI线程


请在此处查找更多信息:

我想有这么高声誉的人会先在此处搜索类似的问题。实际上有几十个。@Zabri你能把我链接到一个专门排除AsyncTask/Handler/Service类的吗?我知道我可以
new Thread
,但我想确保我可以从任何地方(甚至是主UI线程)调用它,并且它仍然可以按预期运行(非UI阻塞任务)。除了从主线程之外,您还想从何处调用它?这就是它的目的——拥有一个不会阻塞主UI线程的后台任务。请看这里:特别是工作线程中的第二个示例。你可以在那里以类似的方式处理你的
位图。啊,看,这就是我一开始想要的信息!我的谷歌搜索已经把我链接到了一些只建议AsyncTask/Handler/Service的帖子上……没有任何解释或任何东西。非常感谢。没问题,如果你接受我的回答,我会很高兴的。谢谢。如果你在主UI线程上创建一个新线程,这会有问题吗?应该没问题,你可以在UI线程上运行这个。我试着在runOnUiThread中使用这个before@DarrenGreen在UI线程上运行较大的函数可能会导致ANR异常
new Thread(new Runnable()
{   
    @Override
    public void run()
    {
       // Your code here                        
    }
}).start();