Android 应用程序适用于模拟器但不适用于设备

时间:2021-05-12 14:27:39

标签: java android android-studio android-emulator jsoup

我必须为我的学校项目创建一个应用。它基本上应该做的是:从服务器的 .txt 中获取数据 -> 在切换按钮打开时在应用程序中显示数据。 它还应该有滚动,自动刷新和刷新到底部时自动刷新的选项。 一切正常,直到我添加了最后一个功能,它仍然可以在模拟器上运行,但不能在任何实际设备上运行(您仍然可以打开应用程序并切换按钮,它只是不加载数据)。我对此很陌生,不知道回滚粗略版本。任何帮助表示赞赏。 :)

package com.example.urlread;

import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.Html;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.ToggleButton;

import androidx.appcompat.app.AppCompatActivity;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class MainActivity extends AppCompatActivity {

    int count = 0;
    TextView texx; //klopt dit?
    private volatile boolean stopcount = true;

    public void stopcounter(){
        stopcount = true;


    }

    public void startcounter(){
        stopcount = false;

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        texx = (TextView) findViewById(R.id.tex1);
        texx.setMovementMethod(new ScrollingMovementMethod());

        

        Thread t= new Thread(){
            @Override
            public void run (){
                while (!isInterrupted()){
                    try {
                        Thread.sleep(1000);
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                if (stopcount) {
                                    return;
                                }
                                if (!stopcount) {
                                    count++;
                                    new doit().execute();
                                    Log.d("counter", String.valueOf(count));
                                }
                            }
                        });
                    } catch (InterruptedException e){
                        e.printStackTrace();

                    }


                }

            }

        };
        t.start();


        ToggleButton Tbut = (ToggleButton) findViewById(R.id.toggleButton);
        Tbut.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    new doit().execute();
                    startcounter();

                } else {

                    texx.setText("");
                    stopcounter();
                }

            }
        });


    }


    public class doit extends AsyncTask<Void, Void, Void> {
        String words;

        @Override
        protected Void doInBackground(Void... voids) {
            try {


                Document doc = Jsoup.connect("https://innovatielab2.tk:4432/xmega.txt").get();
                //      words=doc.text();
                words = doc.html();

                Log.d("webtext", words);


            } catch (Exception e) {
                e.printStackTrace();
            }


            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            String test123 = "<h2>Title</h2><br><p>Description here</p>";
            // texx.setText(words);
            Log.d("localstring", test123);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                texx.setText(Html.fromHtml(words, Html.FROM_HTML_MODE_COMPACT));
            } else {
                texx.setText(Html.fromHtml(words));
            }
        }
    }


}

0 个答案:

没有答案
相关问题