如何从Web界面重新加载片段

时间:2019-01-01 15:36:20

标签: java webview fragment assets

我正在仅使用Web View在android上编写应用程序,并且正在使用Web Interface来通过javascript执行Java代码。 我有用于加载资产文件的WebViewFragment类。它是这样的:

fragment = new WebViewFragment("file:///android_asset/account.html");

我需要用另一个资产文件重新加载Fragment。 为此,我在Web Interface类中具有loadFragment函数:

@JavascriptInterface
public void loadFragment(String file) {
    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.replace(R.id.screen_area, new WebViewFragment("file:///android_asset/" + file));
    mFragmentTransaction.commit();

}

但是它给出了这样的错误:

01-01 21:29:08.065 6502-6571/com.arystankaliakparov.samosval W/System.err: java.lang.IllegalStateException: Activity has been destroyed
01-01 21:29:08.069 6502-6571/com.arystankaliakparov.samosval W/System.err:     at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2114)
    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:683)
    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:637)
    at com.arystankaliakparov.samosval.WebAppInterface.loadAuth(WebAppInterface.java:65)
    at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
    at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.os.HandlerThread.run(HandlerThread.java:61)

0 个答案:

没有答案