이 코드는 내가 작성한 코드입니다.이 기능이 작동하지 않을 때 찾을 수 없었지만 때때로 작동합니다.IllegalStateException : FragmentActivity 클래스의 onSaveInstanceState 이후에이 작업을 수행 할 수 없습니다.
public class ListFragmentActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main();
IntentFilter filter1 = new IntentFilter("com.venkat.listfragment");
registerReceiver(myReceiver, filter1);
// register reciever intent filter.
}
public void main(){
IntentFilter filter1 = new IntentFilter("com.venkat.listfragment");
registerReceiver(myReceiver, filter1);
List_Fragment ls_fragment = new List_Fragment();
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
getSupportFragmentManager().beginTransaction()
.replace(android.R.id.content, ls_fragment).addToBackStack(null).commitAllowingStateLoss();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
}
private BroadcastReceiver myReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
main();
}
};}
내가 네 개의 탭을 가지고, 내가 하나 개의 탭을 클릭하면이 해당 화면을 표시하고 내가 클릭했을 때 해당 화면에서 내가 이전 화면으로 돌아 얻기 위해 같은 tab.but에있는 다른 화면을 탐색하고 동일한 탭 내가 그것에 대한 방송 수신기를 작성했습니다.
08-19 10:13:51.436: E/AndroidRuntime(2830): FATAL EXCEPTION: main
08-19 10:13:51.436: E/AndroidRuntime(2830): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.venkat.listfragment } in [email protected]
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:905)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.os.Handler.handleCallback(Handler.java:587)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.os.Handler.dispatchMessage(Handler.java:92)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.os.Looper.loop(Looper.java:123)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-19 10:13:51.436: E/AndroidRuntime(2830): at java.lang.reflect.Method.invokeNative(Native Method)
08-19 10:13:51.436: E/AndroidRuntime(2830): at java.lang.reflect.Method.invoke(Method.java:521)
08-19 10:13:51.436: E/AndroidRuntime(2830): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
08-19 10:13:51.436: E/AndroidRuntime(2830): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
08-19 10:13:51.436: E/AndroidRuntime(2830): at dalvik.system.NativeStart.main(Native Method)
08-19 10:13:51.436: E/AndroidRuntime(2830): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1343)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1354)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:493)
08-19 10:13:51.436: E/AndroidRuntime(2830): at com.venkat.main.ListFragmentActivity.main(ListFragmentActivity.java:65)
08-19 10:13:51.436: E/AndroidRuntime(2830): at com.venkat.main.ListFragmentActivity$1.onReceive(ListFragmentActivity.java:89)
08-19 10:13:51.436: E/AndroidRuntime(2830): at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892)
08-19 10:13:51.436: E/AndroidRuntime(2830): ... 9 more
나는이 문제와 관련된 많은 링크를 참조하지만, 그 내 문제가 해결되지 않습니다
내가이 오류를 얻고있다.
이 문제는보고 된이 문제에 묶여 있다고 생각합니다 [이 질문에] (http://stackoverflow.com/q/7469082/1051783). – gunar
질문/답변에서 인용 부호 ">"의 오용을 중지하십시오. 이것은 따옴표로 묶지 않기 위해 사용되지 않습니다. – WarrenFaith