如题,这个问题该如何解决。
详细的操作流程是:启动应用 ——>点击一个界面上的按钮 ——>通过5+sdk调用Android原生方法打开一个原生activity界面 ——>点击HOME键返回桌面(此时应用中打开的所有activity未被销毁) ——>点击应用再次进入应用被打开的原生activity被强制销毁了(运行了onDestroy()方法)只保留了h5的activity,但是通过任务管理器点击应用再次进入的话被打开的原生activity未被销毁并可以正常运行。
打开原生activity的代码如下(有两种打开activity的方法):
第一种:
var Intent = plus.android.importClass("android.content.Intent");
var Bundle = plus.android.importClass("android.os.Bundle");
var main = plus.android.runtimeMainActivity();
var intent = new Intent("com.xxx.xxx.video");
var bundle = new Bundle();
bundle.putString("info_id", id);
bundle.putString("cat_id", catId);
bundle.putString("info_title", title);
bundle.putBoolean("autoLogin", true);
bundle.putString("CASTGC", users.CASTGC);
bundle.putString("jsessionid", data.jsessionid);
intent.putExtras(bundle);
main.startActivity(intent);
第二种(通过第三方IM插件启动相关的Android原生界面):
var ConnectUtil = plus.android.importClass("com.xxx.xxx.ConnectUtil");
connect_util.openVoiceActivity();
5 个回复
暖宝宝爱吃饭
按照楼主的第一种方式打开Android原生activity,报错如下:
Uncaught startActivity;android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ls.test/com.ls.test.TestActivity}; have you declared this activity in your AndroidManifest.xml?
请问知道怎么解决吗?
6***@qq.com
请问解决了么
撒网要见鱼 - 厚积薄发!
同求,我也遇到了这个问题。想在H5+项目集成原生模块时,点了HOME键再返回应用,原生activity都不见了。
DCloud_Android_ST
这种情况 你可以尝试修改一下工程中AndroidManifest.xml !代码中修改PandoraEntry和PandoraEntryActivity 注册声明。把android:launchMode="singleTask" 改成singleTop 或者删除代码试一下
撒网要见鱼 - 厚积薄发!
试了下, 把PandoraEntryActivity设为"singleTask", 把PandoraEntry的"singleTask"去掉,是可以的。
,修改后代码如下:
(其它情况下,只要PandoraEntryActivity的模式不为"singleTask"都无法打开应用的。)
目前还没有发现由此引起的额外问题。