【问题标题】:Starting activity from thread从线程开始活动
【发布时间】:2015-05-17 17:47:45
【问题描述】:

我在从线程启动活动时遇到了一些麻烦。

基本上,主活动启动 x 数量的线程,这些线程存储在 arraylist 中。每个线程都尝试从给定的源中查找内容。如果找到相关内容对话框询问他是否要下载它。此时代码有效,但我想开始显示下载过程的活动。

    public void activitystart()
{
    new Handler().post(new Runnable() {
        @Override
        public void run() {
            Intent i = new Intent(Main_receive_Activity.getcontext(),About_Activity.class);
            startActivity(i);
        }
    });  }

它抱怨它无法解析方法“startActivity”(android.content.Intent)。

有什么建议我可以从扩展线程的类中为活动加注星标,就像我在对话框中使用的相同方法在启动活动时似乎不起作用?

编辑:工作解决方案

public void activitystart()
{
    Objectcontainer.popHandler.post(new Runnable() 
    {
        @Override
        public void run() 
        {
           Intent i = new Intent(Settings.context, About_Activity.class);
           Settings.context.startActivity(i);
       }
   });}

我将当前上下文存储在 Settings 类的静态上下文变量中,因此是 Settings.context

【问题讨论】:

  • startActivity是Context的一个方法
  • 你试过我的解决方案了吗?
  • 是的,感谢您的提示,不幸的是我只能接受它作为最佳答案,因为我是 stackoverflow 的新手。我责怪日食的容易性没有弄清楚这一点。这个intellij对我不起作用(至少在默认设置下)1)建议比在eclipse上更糟糕(在这种情况下它建议使用activitycompact)2)在调试(或获取建议)时将鼠标悬停在对象等上以获取值有几个像素的范围(为什么是 f*ck) 3)自动插入的东西比在 Eclipse 中更糟糕。它不断地添加结束括号,而当一个已经存在时,它不会添加。
  • 在您的 IDE 中按 Ctrl+Alt+L 来格式化您的代码。
  • 我希望括号有自己的行。也是 eclipse 支持得更好的一件事。最后一个括号在同一行,因为如果它们在不同的括号上,stackoverflow 会将它们从代码部分中退出。

标签: java android multithreading


【解决方案1】:

你应该如下指定你的上下文

  context.startActivity(intent); 

【讨论】:

  • 呵呵,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多