Android java活动
我有这两种方法,当“something1*”发生时,我需要在暂停这个主要活动中加上什么,然后在暂停主要活动时改为something1*。但我的问题是,它并没有改变我的活动,它冻结了我的主要活动,它不做任何其他事情。这可能是因为我破坏了线程,但我看不到任何解决方案,我也不确定。(method2在一个循环中) 对不起我的英语,谢谢你的帮助Android java活动,java,android,android-activity,Java,Android,Android Activity,我有这两种方法,当“something1*”发生时,我需要在暂停这个主要活动中加上什么,然后在暂停主要活动时改为something1*。但我的问题是,它并没有改变我的活动,它冻结了我的主要活动,它不做任何其他事情。这可能是因为我破坏了线程,但我看不到任何解决方案,我也不确定。(method2在一个循环中) 对不起我的英语,谢谢你的帮助 public void method1(){ super.onPause(); run = false; while
public void method1(){
super.onPause();
run = false;
while(){
try{
thread.join();
}catch(InterruptedException e){
e.printStackTrace();
}
}
thread1 = null;
Intent i = new Intent(someactivity1*);
startActivity(i);
}
//the method2 is inside a loop
public void method2(){
if(something1*){
onPause();
}
}
您可以说thread.join()
。这使得主线程,也就是UI线程,等待名为thread
的线程完成。换句话说,您正在用它锁定您的应用程序
你为什么要暂停你的应用程序?安卓自己管理一切。只需启动活动,不要在方法中的任何地方调用
onPause()
,除非调用YourActivity.onPause()
,您绝对不应该调用onPause。这是一种操作系统回调方法。将活动置于暂停状态的不是您,而是操作系统,因此您根本不必调用onPause()方法
我认为你应该简单地开始另一个活动,当“某事”发生时,上一个活动暂停。
希望这有帮助。我不知道你想做什么,但这段代码很糟糕。。。