我在为RssReader运行我的Android项目时遇到错误.
码:
URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader xmlreader = parser.getXMLReader();
RssHandler theRSSHandler = new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is = new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();
Run Code Online (Sandbox Code Playgroud)
它显示以下错误:
android.os.NetworkOnMainThreadException
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
在android服务中,我创建了一些用于执行某些后台任务的线程.
我有一种情况,线程需要在主线程的消息队列上发布某些任务,例如a Runnable.
有没有办法获得Handler主线程并从我的其他线程发布Message/ Runnable到它?
谢谢,
postInvalidate()Android中的这个功能有什么用?我在很多地方都看到过这个功能.当我用Google搜索时,我出来了这么多:
postInvalidate-- 在UI线程上发布无效请求
我不知道那句话"无效请求"是什么意思.有人可以详细解释这里发生了什么吗?
我正在尝试为Android-App创建一个ProgressDialog(只是一个简单的显示用户正在发生的东西,没有按钮或任何东西),但我无法正确.我一直在浏览论坛和教程以及SDK附带的示例代码,但无济于事.
这就是我得到的:
btnSubmit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
(...)
ProgressDialog pd = new ProgressDialog(MyApp.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("Working...");
pd.setIndeterminate(true);
pd.setCancelable(false);
// now fetch the results
(...long time calculations here...)
// remove progress dialog
pd.dismiss();
Run Code Online (Sandbox Code Playgroud)
我也试过添加pd.show();和搞乱参数,new ProgressDialog导致什么都没有(除了所选参数不起作用的错误),这意味着:ProgressDialog永远不会出现.应用程序只是保持运行,就好像我从未添加过对话框一样.
我不知道我是否在正确的地方创建了对话框,我把它移动了一下但是,这也没有帮助.也许我在错误的背景下?上面的代码是内部private ViewGroup _createInputForm()在MyApp.
任何提示都表示赞赏,
我搜索过,但我找不到答案.我正在使用HTML5和JavaScript开发基于webview的Android应用程序.我可以调用Android方法,例如makeToast()JavaScript吗?
AsyncTask由于它的简单性,我习惯于使用它并很好地理解它。但Coroutines让我感到困惑。您能否以简单的方式向我解释以下各项的区别和目的?
GlobalScope.launch(Dispatchers.IO) {}GlobalScope.launch{}CoroutineScope(Dispatchers.IO).launch{}lifecycleScope.launch(Dispatchers.IO){}lifecycleScope.launch{}我在我的应用程序中有这个简单的计时器,每3秒运行一次.如果它不在片段类中,它可以完美地工作.但是在片段中我总是得到错误:只有创建视图层次结构的原始线程才能触及其视图.
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
String timeStamp = new SimpleDateFormat(
"yyyy.MM.dd HH:mm:ss").format(Calendar
.getInstance().getTime());
System.out.println("TimeStamp: " + timeStamp);
// Read And Write Register Sample
port = Integer.parseInt(gConstants.port);
String refe = "0";// HEX Address
ref = Integer.parseInt(refe, 16);// Hex to int
count = 10; // the number Address to read
SlaveAddr = 1;
astr = gConstants.ip; // Modbus Device
InetAddress addr;
try {
addr = InetAddress.getByName(astr);
con = new TCPMasterConnection(addr); // the
// connection …Run Code Online (Sandbox Code Playgroud) 我只是一个初学者所以请原谅我提出可能是一个愚蠢的问题
我不明白只有创建视图层次结构的原始线程才能触及其视图.
请有人教我这个错误发生的原因以及如何解决这个问题.
谢谢
这是我的班级
public class MainActivity extends Activity {
TextView title;
Random random = new Random();
int counter = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startup);
startingUp();
}
private void startingUp() {
Thread timer = new Thread() { //new thread
public void run() {
Boolean b = true;
try {
do {
counter++;
title();
sleep(1000);
title.clearComposingText();
}
while (b == true);
} catch (IntruptedException e) {
e.printStackTrace();
}
finally {
}
};
};
timer.start();
}
public …Run Code Online (Sandbox Code Playgroud) 我试图在每半秒运行for循环.循环在每次调用时都会在视图中改变某些东西,但是更改是由另一个类即Speedometer进行的.
Thread thread=new Thread(){
@Override
public void run() {
float i;
try {
for ( i = 0; i <= 100; i++) {
Speedometer1.onSpeedChanged(Speedometer1.getCurrentSpeed(i) + 8);
Speedometer2.onSpeedChanged(Speedometer2.getCurrentSpeed(i) + 8);
Speedometer3.onSpeedChanged(Speedometer3.getCurrentSpeed(i) + 8);
Speedometer4.onSpeedChanged(Speedometer4.getCurrentSpeed(i) + 8);
Speedometer5.onSpeedChanged(Speedometer5.getCurrentSpeed(i) + 8);
Speedometer6.onSpeedChanged(Speedometer6.getCurrentSpeed(i) + 8);
sleep(500);
}
}
catch (InterruptedException e)
{e.printStackTrace();}
}
};thread.start();
Run Code Online (Sandbox Code Playgroud) 我正在尝试让ImageView在我的drawable文件夹中的2个图像之间进行动画处理.
我认为一切都会正常,但日志显示错误: Only the original thread that created a view hierarchy can touch its views.
继承我的代码:
public class ExerciseActivity extends Activity {
private ExercisesDataSource datasource;
private Cursor cursor;
private ImageView image_1_view;
private Timer _timer;
private int _index;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exercise);
datasource = new ExercisesDataSource(this);
datasource.open();
cursor = datasource.fetchExercise(exerciseDataID);
image_1_view = (ImageView) findViewById(R.id.exercise_image);
_index = 1;
_timer = new Timer();
_timer.schedule(new TickClass(), 1000);
}
public class TickClass extends TimerTask
{
private int columnIndex;
@Override
public void …Run Code Online (Sandbox Code Playgroud) android ×10
java ×5
coroutine ×1
html5 ×1
imageview ×1
invalidation ×1
javascript ×1
webview ×1