gpt4 book ai didi

java - 在 Android 中执行多个 Activity

转载 作者:行者123 更新时间:2023-12-01 11:19:21 25 4
gpt4 key购买 nike

我试图通过使用线程和线程类的 sleep 方法在执行另一个 Activity 后执行一个 Activity 。这是代码,

package com.example.admin.myapplication;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layo);
Thread th=new Thread() {
public void run()
{
try
{

Thread.sleep(3000);
}
catch(InterruptedException i)
{
i.printStackTrace();
}
finally
{
Intent io=new Intent("com.example.admin.myapplication.NEWATTEMPT");
startActivity(io);
}
}

};
th.start();

}

Code for layo.xml is-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="@drawable/pic">

</LinearLayout>

NewAttempt 是另一个 java 类 -

我的问题是这样的 -在行号中。 MainActivity的16,我将内容设置为layo.xml,然后创建线程类的实例并启动它,但是,如果我将 setContentView(R.layout.layo) 放在 try block 中,那么在启动应用程序时它会显示错误。为什么会这样?有人可以解释为什么吗?

有人可以解释一下 android 中的执行是如何发生的吗,即读取文件的顺序?我是 Android 的初学者,我不太了解控制如何从一个 Activity 流向另一个 Activity?

最佳答案

每当您想要修改 Activity 内的 View 时,您都需要在 Activity(ui) 线程上执行此操作。 UI 线程已同步。 Activity 有一个可以处理您的 Runnable 的方法

    runOnUiThread(new Runnable() {
@Override
public void run() {
//your method that modify view
}
});

就您而言,您可以将上面的方法放在线程中

    Thread th = new Thread() {
public void run()
{
try
{
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
//your method that modify view
MainActivity.this.setContentView(R.layout.layo);
}
});
Thread.sleep(3000);
}
catch(InterruptedException i)
{
i.printStackTrace();
}
finally
{
Intent io = new Intent("com.example.admin.myapplication.NEWATTEMPT");
startActivity(io);
}
}

};
th.start();

关于java - 在 Android 中执行多个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31444717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com