Android java.lang.RuntimeException:无法恢复活动(当共享窗口被取消时)

Android java.lang.RuntimeException:无法恢复活动(当共享窗口被取消时),android,android-activity,onresume,resume,Android,Android Activity,Onresume,Resume,当共享窗口被取消时 程序停止。 共享时,将显示文本共享窗口并共享文本 但当显示共享窗口时 触摸后退按钮将出错并退出应用程序 Logcat 01-18 16:18:25.177 166-514/? E/BandwidthController: Updating quota globalAlert failed (No such file or directory) --------- beginning of /dev/log/system 01-18 16:18:25.487 31

当共享窗口被取消时 程序停止。 共享时,将显示文本共享窗口并共享文本

但当显示共享窗口时 触摸后退按钮将出错并退出应用程序

Logcat

01-18 16:18:25.177 166-514/? E/BandwidthController: Updating quota globalAlert failed (No such file or directory)

    --------- beginning of /dev/log/system
01-18 16:18:25.487 3157-3157/ir.hetbo.book_java E/dalvikvm: Could not find class 'android.support.v4.app.ActivityCompat$SharedElementCallback21Impl', referenced from method android.support.v4.app.ActivityCompat.setEnterSharedElementCallback
01-18 16:18:25.497 3157-3157/ir.hetbo.book_java E/dalvikvm: Could not find class 'android.support.v4.app.ActivityCompat$SharedElementCallback21Impl', referenced from method android.support.v4.app.ActivityCompat.setExitSharedElementCallback
01-18 16:18:26.807 3157-3157/ir.hetbo.book_java E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ir.hetbo.book_java, PID: 3157
    java.lang.RuntimeException: Unable to resume activity {ir.hetbo.book_java/ir.hetbo.book_java.main}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2786)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2815)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5019)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
        at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2080)
        at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2106)
        at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:683)
        at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:637)
        at ir.hetbo.book_java.main$1.onTabSelected(main.java:142)
        at com.roughike.bottombar.BottomBar.setOnTabSelectListener(BottomBar.java:481)
        at com.roughike.bottombar.BottomBar.setOnTabSelectListener(BottomBar.java:465)
        at ir.hetbo.book_java.main.bottomtabs(main.java:137)
        at ir.hetbo.book_java.main.onResume(main.java:87)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1209)
        at android.app.Activity.performResume(Activity.java:5310)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2776)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2815) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5019) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
        at dalvik.system.NativeStart.main(Native Method) 
01-18 16:18:35.967 3205-3205/? E/memtrack: Couldn't load memtrack module (No such file or directory)
01-18 16:18:35.967 3205-3205/? E/android.os.Debug: failed to load memtrack module: -2
main.java

package ir.hetbo.book_java;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Parcelable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.view.WindowManager;
import android.widget.FrameLayout;

import com.roughike.bottombar.BottomBar;
import com.roughike.bottombar.BottomBarTab;
import com.roughike.bottombar.OnTabSelectListener;

import java.io.IOException;

import ir.hetbo.book_java.database.DBOpenHelper;
import ir.hetbo.book_java.fragments.Contact;
import ir.hetbo.book_java.fragments.Favorite;
import ir.hetbo.book_java.fragments.Category;
import ir.hetbo.book_java.fragments.Recent;
import ir.hetbo.book_java.fragments.Setting;

public class main extends AppCompatActivity {
    SharedPreferences sp;
    BottomBar bar;
    FrameLayout frame;

    Category Category;
    Contact contact;
    Favorite favorite;
    Recent recent;


    @Override
    protected void onCreate(Bundle savedInstanceState) {

        sp = getSharedPreferences("prefs",Context.MODE_PRIVATE);
        final boolean useDarkTheme = sp.getBoolean("dark2",false);
        if (useDarkTheme)
            setTheme(R.style.dark);
        else {
            setTheme(R.style.AppTheme);
            SetColorPrimary();
        }

        SetColorAccent();

        boolean screen = sp.getBoolean("screen",false);
        if (screen)
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        else {
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }

        //if (Build.VERSION.SDK_INT >= 21) {
        //getWindow().setNavigationBarColor(getResources().getColor(R.color.colorAccent2));
        //getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccent2));
        //}

        super.onCreate(savedInstanceState);
        //overridePendingTransition( R.anim.fadeout,R.anim.fadein);
        setContentView(R.layout.main);

        frame = findViewById(R.id.frame);
        bar = findViewById(R.id.bottomBar);

        bottomtabs(bar);

        DBOpenHelper helper = new DBOpenHelper(this);
        try {
            helper.importDB();
        }catch (IOException e){

        }

    }


    @Override
    protected void onResume() {
        super.onResume();
        bottomtabs(bar);
    }


    private void bottomtabs(BottomBar bar){
        //انتخاب رنگ باتن بار در صورتی که تم مشکلی باشد یا نباشد
        boolean useDarkTheme = sp.getBoolean("dark2",false);
        if (useDarkTheme){
            //رنگ باتن بار مشکی میشود
            BottomBarTab tab1 = bar.getTabAtPosition(0);
            tab1.setBarColorWhenSelected(Color.parseColor("#212121"));
            BottomBarTab tab2 = bar.getTabAtPosition(1);
            tab2.setBarColorWhenSelected(Color.parseColor("#212121"));
            BottomBarTab tab3 = bar.getTabAtPosition(2);
            tab3.setBarColorWhenSelected(Color.parseColor("#212121"));
            BottomBarTab tab4 = bar.getTabAtPosition(3);
            tab4.setBarColorWhenSelected(Color.parseColor("#212121"));
            BottomBarTab tab5 = bar.getTabAtPosition(4);
            tab5.setBarColorWhenSelected(Color.parseColor("#212121"));
        }
        else {
            // رنگ باتن بار برای هر تب یک رنگ Set میشود
            BottomBarTab tab1 = bar.getTabAtPosition(0);
            tab1.setBarColorWhenSelected(Color.parseColor("#E91E63"));
            BottomBarTab tab2 = bar.getTabAtPosition(1);
            tab2.setBarColorWhenSelected(Color.parseColor("#FF9800"));
            BottomBarTab tab3 = bar.getTabAtPosition(2);
            tab3.setBarColorWhenSelected(Color.parseColor("#2196F3"));
            BottomBarTab tab4 = bar.getTabAtPosition(3);
            tab4.setBarColorWhenSelected(Color.parseColor("#009688"));
            BottomBarTab tab5 = bar.getTabAtPosition(4);
            tab5.setBarColorWhenSelected(Color.parseColor("#9c27b0"));
        }

        // ماندن در صفحه تنظیمات در صورتی که برنامه ریست شود.
        final boolean settingapp = sp.getBoolean("Setting",false);
        if (settingapp) {
            bar.selectTabAtPosition(3);
            sp.edit().putBoolean("Setting", false).apply();
        }

        //انتخاب تب پیش فرض

        boolean selectTab = sp.getBoolean("selectTab",true);
        if (selectTab) {
            bar.selectTabAtPosition(2);//انتخاب تب
            sp.edit().putBoolean("selectTab", false).apply();
        }
        bar.setAnimation(null);

        bar.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelected(int tabId) {
                switch (tabId) {
                    case R.id.tab_recent:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame,new Recent()).commit();                       break;
                    case R.id.tab_favorite:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame,new Favorite()).commit();
                        break;
                    case R.id.tab_list:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame,new Category()).commit();
                        break;
                    case R.id.tab_setting:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame,new Setting()).commit();
                        break;
                    case R.id.tab_contact:
                        getSupportFragmentManager().beginTransaction().replace(R.id.frame,new Contact()).commit();
                        break;
                }
            }});
    }
    private  void SetColorPrimary(){
        String ColorPrimary = sp.getString("ColorPrimary","md_orange_500");
        switch(ColorPrimary){
            case "md_red_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary__md_red_500, true);
                break;
            case "md_pink_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_pink_500, true);
                break;
            case "md_purple_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_purple_500, true);
                break;
            case "md_deep_purple_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_deep_purple_500, true);
                break;
            case "md_indigo_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_indigo_500, true);
                break;
            case "md_blue_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_blue_500, true);
                break;
            case "md_light_blue_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_light_blue_500, true);
                break;
            case "md_cyan_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_cyan_500, true);
                break;
            case "md_teal_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_teal_500, true);
                break;
            case "md_green_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_green_500, true);
                break;
            case "md_light_green_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_light_green_500, true);
                break;
            case "md_lime_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_lime_500, true);
                break;
            case "md_yellow_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_yellow_500, true);
                break;
            case "md_amber_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_amber_500, true);
                break;
            case "md_orange_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_orange_500, true);
                break;
            case "md_deep_orange_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_deep_orange_500, true);
                break;
            case "md_brown_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_brown_500, true);
                break;
            case "md_grey_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_grey_500, true);
                break;
            case "md_blue_grey_500":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_blue_grey_500, true);
                break;
            case "md_white":
                getTheme().applyStyle(R.style.OverlayColorPrimary_md_white, true);
                break;
        }

    }
    private  void SetColorAccent(){
        String colorAccent = sp.getString("colorAccent","md_orange_500");
        switch(colorAccent){
            case "md_red_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_red_500, true);
                break;
            case "md_pink_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_pink_500, true);
                break;
            case "md_purple_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_purple_500, true);
                break;
            case "md_deep_purple_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_deep_purple_500, true);
                break;
            case "md_indigo_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_indigo_500, true);
                break;
            case "md_blue_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_blue_500, true);
                break;
            case "md_light_blue_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_light_blue_500, true);
                break;
            case "md_cyan_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_cyan_500, true);
                break;
            case "md_teal_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_teal_500, true);
                break;
            case "md_green_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_green_500, true);
                break;
            case "md_light_green_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_light_green_500, true);
                break;
            case "md_lime_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_lime_500, true);
                break;
            case "md_yellow_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_yellow_500, true);
                break;
            case "md_amber_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_amber_500, true);
                break;
            case "md_orange_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_orange_500, true);
                break;
            case "md_deep_orange_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_deep_orange_500, true);
                break;
            case "md_brown_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_brown_500, true);
                break;
            case "md_grey_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_grey_500, true);
                break;
            case "md_blue_grey_500":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_blue_grey_500, true);
                break;
            case "md_white":
                getTheme().applyStyle(R.style.OverlayColorAccent_md_white, true);
                break;
        }
    }

}
最近的.java

package ir.hetbo.book_java.fragments;


import android.content.Intent;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.AppCompatImageView;
import android.support.v7.widget.AppCompatTextView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import ir.hetbo.book_java.R;
import ir.hetbo.book_java.StoryClass;
import ir.hetbo.book_java.database.DBOpenHelper;

/**
 * A simple {@link Fragment} subclass.
 */
public class Recent extends Fragment {

    SharedPreferences preferences;
    int id;
    AppCompatTextView category;
    AppCompatTextView title;
    AppCompatTextView story;
    AppCompatImageView star;
    AppCompatImageView share;
    LinearLayout bar;
    AppCompatTextView nr;

    View v;
    public Recent() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        v = inflater.inflate(R.layout.fragment_recent, container, false);

        return v;

    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        category = getActivity().findViewById(R.id.dast);
        title = getActivity().findViewById(R.id.title);
        story = getActivity().findViewById(R.id.story);

        star = getActivity().findViewById(R.id.star);
        share = getActivity().findViewById(R.id.share);

        bar = getActivity().findViewById(R.id.bar);
        nr = getActivity().findViewById(R.id.norecent);preferences = getContext().getSharedPreferences("prefs",Context.MODE_PRIVATE);
        id = preferences.getInt("RecentID",0);



        if (id == 0){
            nr.setVisibility(View.VISIBLE);
            bar.setVisibility(View.INVISIBLE);
            title.setVisibility(View.INVISIBLE);
            return;
        }

        final StoryClass sc = new StoryClass(0,"",0,0,"");

        final DBOpenHelper helper = new DBOpenHelper(getContext());

        helper.open();

        Cursor c = helper.getStroy(id);

        if (c.moveToFirst()){
            int sId = c.getInt(0);
            String stitle = c.getString(1);
            int scategory = c.getInt(2);
            int sFav = c.getInt(3);
            String sStory = c.getString(4);
            category.setText(String.valueOf(scategory));
            title.setText(stitle);
            story.setText(sStory);

            star.setImageResource(sFav == 1 ? R.drawable.star2 : R.drawable.star_outline2);

            sc.setId(sId);
            sc.setFavorite(sFav);
            sc.setStory(sStory);
            sc.setCategory(scategory);
            sc.setTitle(stitle);
        }


        share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent share = new Intent(Intent.ACTION_SEND);
                share.setType("text/plain");
                share.putExtra(Intent.EXTRA_TEXT,sc.getStory());
                startActivity(Intent.createChooser(share,"اشتراک گذاری با..."));
            }
        });


        star.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                helper.open();
                star.setImageResource(sc.getFavorite() == 0 ? R.drawable.star2 : R.drawable.star_outline2);
                helper.setFav(id,sc.getFavorite() == 1 ? 0 : 1);
                helper.close();
                sc.setFavorite(sc.getFavorite()== 1 ? 0 : 1);
                helper.close();
            }
        });

        int f = preferences.getInt("font",1);
        int s = preferences.getInt("size",15);

        title.setTextSize(s+5);
        story.setTextSize(s);
        category.setTextSize(15);

        Typeface t1 = Typeface.createFromAsset(getActivity().getAssets(), "homa.ttf");
        Typeface t2 = Typeface.createFromAsset(getActivity().getAssets(), "koodak.ttf");
        Typeface t3 = Typeface.createFromAsset(getActivity().getAssets(), "nazanin.ttf");
        Typeface t4 = Typeface.createFromAsset(getActivity().getAssets(), "titr.ttf");
        Typeface t5 = Typeface.createFromAsset(getActivity().getAssets(), "iransans.ttf");
        Typeface[] t = {t1,t2,t3,t4,t5};
        title.setTypeface(t[f-1]);
        story.setTypeface(t[f-1]);
        category.setTypeface(t[f-1]);

    }

}
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.hetbo.book_java">
    <uses-permission android:name="android.permission.WAKE_LOCK"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="false"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/dark">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".main"
            android:screenOrientation="portrait"/>

        <activity android:name=".ReadStory"
            android:screenOrientation="portrait"></activity>
    </application>

</manifest>