在android子工作室的新子项目中,据我了解这种在设备或模拟器上运行的集成测试,检查应用程序的功能取决于SDK的android.但我确实有方法不依赖于android.他们的测试,我想花在JVM上,避免运行模拟器.
在启动期间,我需要获取两组数据的应用程序,每个数据都有其异步方法.如果我逐个调用它们,那么第二个调用只有在完成第一个调用后才会通过.
List<DataOne> DataCollectionOne;
List<DataTwo> DataCollectionTwo;
async void GetDatas()
{
if(sameCondOne)
DataCollectionOne = await GetDataOne();
if(sameCondTwo)
DataCollectionTwo = await GetDataTwo();
}
Run Code Online (Sandbox Code Playgroud)
所以我把它们包装在任务调用中.
void GetDatas()
{
if(sameCondOne)
Task.Run(() => RunDataOne());
if(sameCondTwo)
Task.Run(() => RunDataTwo());
}
async void RunDataOne()
{
DataCollectionOne = await GetDataOne();
}
async void RunDataTwo()
{
DataCollectionTwo = await GetDataTwo();
}
Run Code Online (Sandbox Code Playgroud)
我做得对吗?
我为我的按钮设置了监听器:
View onCreateView(...) {
...
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//some work
}
});
...
}
Run Code Online (Sandbox Code Playgroud)
如果我使用ButterKnife,建议打电话给ButterKnife.unbind(this)在onDestroyView(){..}.我是否需要删除侦听器以避免内存泄漏?
void onDestroyView() {
...
btn.setOnClickListener(null)
}
Run Code Online (Sandbox Code Playgroud) android android-lifecycle android-fragments android-memory butterknife