Java 从线程启动android活动';这是内螺纹。
此代码位于MainActivity类中Java 从线程启动android活动';这是内螺纹。,java,android,multithreading,Java,Android,Multithreading,此代码位于MainActivity类中 Thread thread1 = new Thread(new Runnable() { @Override public void run() { Thread thread2 = new Thread(new Runnable() { @Override
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
Intent i = new Intent(getApplicationContext(), NextActivity.class);
startActivity(i);
}
});
thread2.start();
}
});
thread1.start();
当我运行这段代码时,什么都没有发生 您不能使用其他线程处理UI或调用其他活动, 您只能从主UI线程执行此操作
Intent i = new Intent(getApplicationContext(), NextActivity.class);
startActivity(i);
运行其他线程意味着,您正在与主线程同时执行一些额外任务。您不能使用其他线程在UI上工作或调用其他活动,
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
Handler mainHandler = new Handler(context.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() {
Intent i = new Intent(context, NextActivity.class);
startActivity(i);
}
mainHandler.post(myRunnable);
};
您只能从主UI线程执行此操作
Intent i = new Intent(getApplicationContext(), NextActivity.class);
startActivity(i);
运行其他线程意味着,您正在与主线程同时执行一些额外任务。
startActivity
应该在主线程中运行,因此如果您需要从thread2
运行它,我会将其发布到主线程中运行
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
Handler mainHandler = new Handler(context.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() {
Intent i = new Intent(context, NextActivity.class);
startActivity(i);
}
mainHandler.post(myRunnable);
};
startActivity
应该在主线程中运行,因此如果需要从thread2
运行它,我会将其发布到主线程中运行
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
Handler mainHandler = new Handler(context.getMainLooper());
Runnable myRunnable = new Runnable() {
@Override
public void run() {
Intent i = new Intent(context, NextActivity.class);
startActivity(i);
}
mainHandler.post(myRunnable);
};
我必须使用两级线程我必须使用两级线程