有没有办法手动设置savedInstanceState Bundle?
我需要在savedInstanceState模式下启动一个活动,在onCreate中,savedInstanceState Bundle不会为null。我的观点是使用我的自定义数据恢复活动。谢谢
答案 0 :(得分:1)
这将使您的代码在将来难以理解且难以维护。此外,您将反对该平台的架构。
正确的方法是在启动Activity
的Intent中发送数据,或者如果bundle为null,则获取onCreate
中的所有数据,如下所示:
if(savedInstanceState == null)
//Get data from db, resources etc.
else
//Do the restoring using the bundle,
//or just let it pass here and handle it in
//`onRestoreInstanceState`, both are correct
请不要试图找到修复方法只是因为正确的方式需要花费更多时间。它将在未来得到回报! : - )
作为旁注,请记住,Intent
Activity
开始<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
$('.info').hide();
$('#countryList').on('change', function() {
$('.info').hide();
var countryCode = $('#countryList').val();
$('.info.' + countryCode).show();
});
});
</script>
</head>
<body>
<select id="countryList">
<option value="">[Select Country]</option>
<option value="DK">Denmark</option>
<option value="DE">Germany</option>
<option value="SE">Sweden</option>
<option value="RO">Romania</option>
<option value="UK">United Kingdom</option>
</select>
<div class="info DK">Copenhagen is the capital of Denmark.</div>
<div class="info DE">Berlin is the capital of Germany.</div>
<div class="info SE">Stockholm is the capital of Sweden.</div>
<div class="info RO">Bucharest is the capital of Romania.</div>
<div class="info UK">Londaon is the capital of the United Kingdom.</div>
</body>
</html>
不应该包含大块数据,因为对于一次在组件之间传输的数据存在1mb的跨进程限制。