Android:条件仅在某些方法运行时运行

时间:2014-08-25 18:26:26

标签: java android testing

您好我在Android中进行单元测试,我想在我的测试中显示我创建的方法是在不同的线程上运行。现在我知道这个代码,但我想这个代码只有在这个方法开始运行后才能运行。这是一个测试,所以基本上如果方法是在一个不同的线程上传递

public void testMethodIsRunningOnDifThread(){

if(method is running on the UI thread)
   fail();
   }
   else
   {
   success
   }

}



if(methodisrunning){

start testMethodIsRunningOnDifThread();

}

类似这样的事情

1 个答案:

答案 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;
      } 
    }

}