singwhatiwanna / dynamic-load-apk

DL : dynamic load framework in android
http://blog.csdn.net/singwhatiwanna/article/details/40283117
Other
6.03k stars 2k forks source link

宿主启动插件,插件使用onbackPressed监听返回时,是想先弹出对话框,然后点击确定退出然后才可以返回,但是实际是弹出对话框之后立即就返回到宿主了,根本不能操作对话框再退出 #115

Open jiangfei891111 opened 8 years ago

ps19900306 commented 8 years ago

当按返回键的时候,先回触发插件的返回键,然后必定再触发代理的返回按键。所以必定会返回。所以这样只能修改框架代码。 向这样改变 DLProxyActivity里面的方法。 @Override public void onBackPressed() { if (mRemoteActivity.myOnPressBack()) super.onBackPressed(); } 在DLBasePluginActivity里面增加方法myOnPressBack 默认返回Ture @Override public boolean myOnPressBack() { // TODO Auto-generated method stub return true; } 返回事件写在 myOnPressBack里面。不想立刻退出当前Activity,返回false就行了

HeLiHuang commented 6 months ago

你好,我想问一下,你在插件里弹出对话框,是怎么实现的,我弹窗时提示下面的错误: ava.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference at androidx.appcompat.app.AlertController.setupView(AlertController.java:468) at androidx.appcompat.app.AlertController.installContent(AlertController.java:233) at androidx.appcompat.app.AlertDialog.onCreate(AlertDialog.java:279) at android.app.Dialog.dispatchOnCreate(Dialog.java:419) at android.app.Dialog.show(Dialog.java:313) at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009) at com.ryg.dynamicload.DLBasePluginActivity.showLoading(DLBasePluginActivity.java:535) at com.gwm.iot.app.plugin.Test3Activity.lambda$onCreate$0$com-gwm-iot-app-plugin-Test3Activity(Test3Activity.java:26) at com.gwm.iot.app.plugin.Test3Activity$$ExternalSyntheticLambda0.onClick(Unknown Source:2) at android.view.View.performClick(View.java:7537) at android.view.View.performClickInternal(View.java:7514) at android.view.View.access$3600(View.java:824) at android.view.View$PerformClick.run(View.java:28490) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7750) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

HeLiHuang commented 6 months ago

对话框是这么调用的: final AlertDialog.Builder normalDialog = new AlertDialog.Builder(that); normalDialog.setTitle("我是一个Dialog"); normalDialog.setMessage("你要点击哪一个按钮呢?"); normalDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) {

                }
            });
    normalDialog.setNegativeButton("关闭",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });
    normalDialog.show();