您好我在Android中进行单元测试,我想在我的测试中显示我创建的方法是在不同的线程上运行。现在我知道这个代码,但我想这个代码只有在这个方法开始运行后才能运行。这是一个测试,所以基本上如果方法是在一个不同的线程上传递
public void testMethodIsRunningOnDifThread(){
if(method is running on the UI thread)
fail();
}
else
{
success
}
}
if(methodisrunning){
start testMethodIsRunningOnDifThread();
}
类似这样的事情
答案 0 :(得分:0)
在您的活动中拥有字符串UI_THREAD。然后将其指定为UI线程的名称。之后在函数中获取当前线程的实例并获取其名称。如果当前线程的名称等于您的UI_THREAD字符串,那么它是UI线程,否则它是一个不同的线程。希望这能回答你的问题。
public class MainActivity extends Activity {
public static final String UI_THREAD = "uithread";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread thread = Thread.currentthread();
thread.setName(UI_THREAD);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
//This method will return true if it runs on a different thread else will return false
public boolean testMethodIsRunningOnDifThread(){
Thread thread = Thread.currentThread();
if(thread.getName().equals(UI_THREAD))
return false;
}
else{
return true;
}
}
}