![](/img/trans.png)
[英]Why does a simple for loop work in the onCreate method but not in the MainActivity class?
[英]Why does overriding onCreate(Bundle, PersistableBundle) not work?
目前正在通过android开发并且错误地我覆盖了onCreate(Bundle, PersistableBundle)
而不是简单的onCreate(Bundle)
,因此活动不会启动。 我通过使用正确的重载来修复它,这很难找到,但这是另一回事。
我的问题是:为什么这不起作用? 为什么重写 onCreate(Bundle, PeristableBundle) 不起作用,即为什么不调用它以及为什么重写其他重载起作用?
onCreate(Bundle)
是您将始终实现的常用方法。
onCreate(Bundle, PersistableBundle)
仅在您设置persistableMode时才会被调用,如文档所述:
void onCreate (Bundle savedInstanceState, PersistableBundle persistentState)
与 onCreate(android.os.Bundle) 相同,但会调用那些使用属性 persistableMode 设置为 persistAcrossReboots 创建的活动。
更多关于persistableMode
: https ://developer.android.com/reference/android/R.attr.html#persistableMode
即使您创建了将属性 persistableMode 设置为 persistAcrossReboots 的活动,正如正确提到的那样。 在 Android 21 中添加了带有第二个参数的onCreate()
版本。所以它仍然无法启动!
这是文档
这是在 BaseActivity 类中使用 OnCreate() 作为抽象的示例。 我正在尝试提供一个真实的项目代码快照,以帮助您在项目中使用。
public abstract class BaseActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
public void showNetworkError() {
Toast.makeText(this,
R.string.error_network,
Toast.LENGTH_SHORT)
.show();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.