【发布时间】:2018-10-17 08:17:39
【问题描述】:
这是我的启动活动代码:
public class Loading extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... voids) {
try {
Thread.sleep(4000);
}catch(InterruptedException ie){
ie.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Intent homeIntent = new Intent(getApplicationContext(), ActivityHome.class);
startActivity(homeIntent);
overridePendingTransition(R.anim.open_next, R.anim.close_main);
}
}
一切正常,但显示下一个警告:
This AsyncTask class should be static or leaks might occur (myapp.activities.ActivitySplash.Loading) less... (Ctrl+F1)
A static field will leak contexts.
如果我将类更改为静态,将使用非静态方法并弹出错误:
Intent homeIntent = new Intent(getApplicationContext(), ActivityHome.class);
startActivity(homeIntent);
overridePendingTransition(R.anim.open_next, R.anim.close_main);
所以如果我将使用私有类将得到警告,如果将尝试使用静态类将得到错误。怎么做才能有清晰的代码?
【问题讨论】:
标签: android class methods static non-static