![](/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.