Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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
Java 未执行线程后的代码_Java_Android - Fatal编程技术网

Java 未执行线程后的代码

Java 未执行线程后的代码,java,android,Java,Android,我正在为android应用程序提取一些html。我遇到的一个问题是,下面代码中线程后面的代码没有被执行。我觉得我犯了一个业余的错误,但我不知道这是什么。我知道ArrayList正在被填充,通过createTimeline()方法将其内容打印到logcat中。 但是,})之后的任何内容。start()未完成。有什么想法吗 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc

我正在为android应用程序提取一些html。我遇到的一个问题是,下面代码中线程后面的代码没有被执行。我觉得我犯了一个业余的错误,但我不知道这是什么。我知道ArrayList正在被填充,通过createTimeline()方法将其内容打印到logcat中。 但是,
})之后的任何内容。start()未完成。有什么想法吗

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_online_timetable);
    Intent intent = getIntent();
    value = intent.getStringExtra("url");


      new Thread(new Runnable() {
            public void run() {
                try {
                    Log.d("url",value);
                    doc = Jsoup.connect(value).get();
                    Element monday = doc.select("p ~ table").first();
                    Element tuesday = doc.select("p ~ table").get(1);
                    Element wednesday = doc.select("p ~ table").get(2);
                    Element thursday = doc.select("p ~ table").get(3);
                    Element friday = doc.select("p ~ table").get(4);

                    monday.select("tr:eq(0)").remove();
                    tuesday.select("tr:eq(0)").remove();
                    wednesday.select("tr:eq(0)").remove();
                    thursday.select("tr:eq(0)").remove();
                    friday.select("tr:eq(0)").remove();


                    final Elements mon = monday.select("td");
                    final Elements tues = tuesday.select("td");
                    final Elements wed = wednesday.select("td");
                    final Elements thurs = thursday.select("td");
                    final Elements fri = friday.select("td");               

                    Log.d("thread","sdsddssd");
                    createTimetable(monClasses, mon, day1);
                    createTimetable(tuesClasses, tues, day2);
                    createTimetable(wedClasses, wed, day3);
                    createTimetable(thurClasses, thurs, day4);
                    createTimetable(friClasses, fri, day5);


                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
          }).start();


      Log.d("sdfsdfsdf", "HELLO");
      for(int i = 0; i<monClasses.size();i++)
      {
          Log.d("monday", monClasses.get(i).toString());
      }


    mSectionsPagerAdapter = new SectionsPagerAdapter(
            getSupportFragmentManager());

}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u display\u online\u时间表);
Intent=getIntent();
value=intent.getStringExtra(“url”);
新线程(newrunnable()){
公开募捐{
试一试{
Log.d(“url”,值);
doc=Jsoup.connect(value.get();
元素monday=doc.select(“p~表”).first();
元素星期二=doc.select(“p~表”).get(1);
元素星期三=doc.select(“p~表”).get(2);
元素星期四=doc.select(“p~表”).get(3);
元素星期五=文件选择(“p~表”).get(4);
星期一。选择(“tr:eq(0)”。删除();
星期二。选择(“tr:eq(0)”)。删除();
星期三。选择(“tr:eq(0)”)。删除();
星期四。选择(“tr:eq(0)”)。删除();
选择(“tr:eq(0)”).remove();
最终元素周一=周一。选择(“td”);
最终要素周二=周二。选择(“td”);
最终元素wed=周三。选择(“td”);
最终元素周四=周四。选择(“td”);
最终要素fri=周五。选择(“td”);
Log.d(“线程”、“SDDSSD”);
创建时间表(周一、周一、第1天);
创建时间表(星期二,星期二,第2天);
创建时间表(周三,周三,第3天);
创建时间表(周四课程,周四,第4天);
创建时间表(周五、周五、第5天);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}).start();
Log.d(“sdfsdfsdf”,“你好”);

对于(int i=0;i我想您来自传统的java开发,所以这里有一句警告:线程和Android互不喜欢。请将您的线程切换到,然后重试,只需更改几行代码

基本上,将所有代码复制到
doInBackground()
方法,然后调用
task.execute()
。 您想对生成的数据执行的所有操作都应该进入异步任务的
onPostExecute()
方法。您甚至可以使用
publishResult()
onResultPublished()

请注意,这可能是同步运行的,但您不必担心这一点。

既然您在线程之后没有做任何UI工作,那么您就不能在finally子句中做这些工作吗


如果您依赖此线程收集数据以填充视图,则应使用AsyncTask。

尝试将线程分配给变量,并在onCreate方法的末尾启动该线程变量

是否可以发布logcat的输出?您应该尝试将发布的代码减少到最小的片段,以重现您的问题。这显然没有实现与一周中的每一天有关,所有这些都让问题难以通读,我将尝试这个异步任务。它看起来有点混乱,但我会解决的。异步任务是android上的一种方式,我不会称之为混乱