尝试编写线程时遇到此错误:不是封闭类

时间:2017-07-13 09:32:22

标签: java android multithreading class android-studio

我有一个名为AnnouncementsActivity的类,我在这个onCreate函数中运行一个线程:

 new GetAnnouncements().execute();

但是,当我尝试编译代码时,我收到了这个错误:

 Error:(42, 59) error: not an enclosing class: AnnouncementsActivity

双击错误将我带到GetAnnouncements类的doInBackground函数:

  Toast toast = Toast.makeText(AnnouncementsActivity.this, announcementsList.get(1).get("baslik"), 5);

我从AnnouncementsActivity执行线程,为什么说AnnouncementsActivity不是封闭类?

2 个答案:

答案 0 :(得分:0)

enclosing类是outer类,包含inner类。换句话说,两个类都在同一个java文件中定义,“内部”类在“外部”文件中定义。

你是否从另一个人那里打电话/创造它并不会使它成为一个封闭的clsas。

您没有显示足够的代码来显示您尝试执行的操作,但AnnouncementsActivity.this看起来非常错误。

答案 1 :(得分:0)

你是否将Toast改为runonUIthread然后解决你的问题。

runOnUiThread(new Runnable() {
                 public void run() {
                     Toast.makeText(AnnouncementsActivity.this, announcementsList.get(1).get("baslik"), 5).show();
                }
            });

尝试说出回应。