从静态AsyncTask中获取当前显示的活动可以通过以下步骤实现:
public class MainActivity extends AppCompatActivity {
private static MainActivity currentActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
currentActivity = this;
// 启动静态AsyncTask
MyStaticAsyncTask myTask = new MyStaticAsyncTask();
myTask.execute();
}
public static MainActivity getCurrentActivity() {
return currentActivity;
}
private static class MyStaticAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// 在后台执行任务
// 可以通过MainActivity.getCurrentActivity()获取当前显示的活动
MainActivity activity = MainActivity.getCurrentActivity();
// 使用activity进行操作
return null;
}
}
}
这样,你就可以在静态AsyncTask中获取到当前显示的活动,并进行相应的操作。请注意,由于静态AsyncTask持有对活动的引用,当活动被销毁时,需要及时释放对活动的引用,以避免内存泄漏。
领取专属 10元无门槛券
手把手带您无忧上云