HarmonyOS 鸿蒙Next 为什么在一个页面里写了这些后 这个页面就无法被跳转了 点击按钮之后就闪退了

HarmonyOS 鸿蒙Next 为什么在一个页面里写了这些后 这个页面就无法被跳转了 点击按钮之后就闪退了

@Override public void onStart(Intent intent) { super.onStart(intent); setUIContent(ResourceTable.Layout_listContainer_ability_main1);

// 查找组件
Text text = (Text) findComponentById(ResourceTable.Id_cold);
text.setText("");

// 查询信息
dataAbilityHelper = DataAbilityHelper.creator(this);
Uri uri = Uri.parse("dataability:///com.example.myapplication.slice.slice.slice.userDataAbility/location");
String[] colums = {"scene", "kind", "name", "location"};
DataAbilityPredicates dataAbilityPredicates = new DataAbilityPredicates();
try {
    ResultSet rs = dataAbilityHelper.query(uri, colums, dataAbilityPredicates);
    // 从rs中获取查询结果
    int rowCount = rs.getRowCount();
    if (rowCount > 0) {
        rs.goToFirstRow();
        do {
            int scene = rs.getInt(rs.getColumnIndexForName("scene"));
            String kind = rs.getString(rs.getColumnIndexForName("kind"));
            String name = rs.getString(rs.getColumnIndexForName("name"));
            String location = rs.getString(rs.getColumnIndexForName("location"));
            String info = "[" + scene + "," + kind + "," + name + "," + location + "]";
            text.setText(text.getText() + info + "\n"); // 添加换行符以便更容易阅读
        } while (rs.goToNextRow());
    }
} catch (DataAbilityRemoteException e) {
    throw new RuntimeException(e);
}

}


更多关于HarmonyOS 鸿蒙Next 为什么在一个页面里写了这些后 这个页面就无法被跳转了 点击按钮之后就闪退了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可能是数据查询太费时了,导致闪退了。

更多关于HarmonyOS 鸿蒙Next 为什么在一个页面里写了这些后 这个页面就无法被跳转了 点击按钮之后就闪退了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


if(component == add){
    Intent c = new Intent();
    //意图中包含了要跳转的页面信息
    Operation operation = new Intent.OperationBuilder()
            .withDeviceId("")//要跳转到哪个设备上,如果传递一个没有内容的字符串,表示跳转本机
            .withBundleName("com.example.myapplication")//要跳转到哪个应用上,小括号里面可以写包名
            .withAbilityName("com.example.myapplication.slice.coldPageAbility")//要跳转的页面
            .build();//将上面的三个信息进行打包到一个operation对象当中(点击build,按ctrl+Alt+v)
    c.setOperation(operation);//把打包之后的operation设置到意图里
    startAbility(c);//跳转页面
}else if(component == other2 || component == other){
    Intent c = new Intent();
    //意图中包含了要跳转的页面信息
    Operation operation = new Intent.OperationBuilder()
            .withDeviceId("")//要跳转到哪个设备上,如果传递一个没有内容的字符串,表示跳转本机
            .withBundleName("com.example.myapplication")//要跳转到哪个应用上,小括号里面可以写包名
            .withAbilityName("com.example.myapplication.slice.searchPageAbility")//要跳转的页面
            .build();//将上面的三个信息进行打包到一个operation对象当中(点击build,按ctrl+Alt+v)
    c.setOperation(operation);//把打包之后的operation设置到意图里
    startAbility(c);//跳转页面
}

HarmonyOS鸿蒙Next页面无法跳转并闪退的原因可能涉及以下几个方面:

  1. 页面路由配置错误:页面路由未正确配置或路径错误,导致跳转失败。

  2. 资源引用问题:页面中引用的资源(如图片、样式等)不存在或路径错误。

  3. 页面生命周期管理不当:页面生命周期方法(如onInitonReady等)未正确处理,导致页面初始化或加载失败。

  4. 组件绑定错误:页面中的组件绑定错误或未正确初始化,导致页面渲染失败。

  5. 异常处理缺失:代码中存在未捕获的异常,导致页面崩溃。

  6. 内存泄漏:页面资源未正确释放,导致内存泄漏,最终引发闪退。

建议检查以上可能的原因,确保代码和资源配置正确。

回到顶部