![](/img/trans.png)
[英]“Could not find class 'android.support.v4.app.FragmentActivity'” Error
[英]Error casting android.support.v4.app.FragmentActivity$NonConfigurationInstances to my AsyncTask
我面臨代碼行問題:
mt=(MyTask)getLastNonConfigurationInstance();
mt 是 MyTask 類的實例
static class MyTask extends AsyncTask<String,Integer,Void>
{
MainActivity activity;
void link (MainActivity act)
{
activity=act;
}
void unlink()
{
activity=null;
}
@Override
protected Void doInBackground(String... params) {
try{
for(int i=1;i<=10;i++){
TimeUnit.SECONDS.sleep(1);
publishProgress(i);
Log.d("qwe", "i = " + i
+ ", MyTask: " + this.hashCode()
+ ", MainActivity: " + activity.hashCode());
}
}
catch (InterruptedException ie)
{
ie.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
activity.tv.setText("i = "+values[0]);
}
}
我將它保存在 onRetainCustomNonConfigurationInstance 方法中
@Override
public Object onRetainCustomNonConfigurationInstance() {
mt.unlink();
return mt;
}
當我嘗試將值從配置實例傳遞給 mt 時出現錯誤,錯誤消息是
java.lang.ClassCastException: android.support.v4.app.FragmentActivity$NonConfigurationInstances 不能轉換為 com.example.bermud06.p091_asynctaskdisplayrotate.MainActivity$MyTask
使用 API 級別 22 的 nexus 5 設備。
請改用getLastCustomNonConfigurationInstance()
。 來自FragmentActivity
的文檔:
public Object onRetainCustomNonConfigurationInstance()
使用它代替
onRetainNonConfigurationInstance()
。 稍后使用getLastCustomNonConfigurationInstance()
檢索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.