所以我在我的 Android 应用程序中到处传递活动和意图来处理线程(我确信有一个更好的范例,因为我的代码开始变得烦人的意大利面条式 - 通常是我的标志没有做正确的事)。
但无论如何,我正在尝试做这样的事情:
public class SomeCoolActivity extends Activity {
private class DoSomeTaskThatInvolvesEitherTheNetworkOrASleepStatementWithoutScrewingUpTheUiThread extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
// Do something useful on a non-UI thread...
return null;
}
@Override
protected void onPostExecute(Void result) {
// Now that's done, I need to progress to the next activity. If I do that here,
// I will get errors. So instead, I will call a method on my parent activity class:
loadNextActivity(NextActivity.class);
}
}
protected void loadNextActivity(Class<Activity> activityToLoad) {
startActivity(new Intent(this, activityToLoad));
}
}
但这不起作用,因为它告诉我有一个错误,即
NextActivity.class
不是活动。是的,显然它不是完全相同的类,但是人们希望我能够传入任何派生自 Activity 的类(包括 NextActivity),但不能传入任何不能传入的类(如果我定义 loadNextActivity 它实际上可以正常工作作为
protected void loadNextActivity(Class<?> activityToLoad)
但这不太理想,因为那时我可以传递任何我想要的东西,也许不是 Activity 的东西……毕竟这是 Java,而不是 Ruby)。而且,如果它只允许我通过一门课……这到底有什么好处?
那么我该如何进行这项工作呢?