使用其他静态方法扩展QtActivity:
package org.whatever
public class YourActivity extends org.qtproject.qt5.android.bindings.QtActivity
{
private static YourActivity instance;
YourActivity() {
instance = this;
}
public static void shareUrl(QString url) {
//create intent here
//can use instance object
}
}
在c方面使用QAndroidJniObject调用shareUrl方法
class QmlInterface : public QObject
{
Q_OBJECT
public:
QmlInterface();
Q_INVOKABLE void shareUrl( QString url );
};
和实施:
void QmlInterface:: shareUrl( QString url )
{
#ifdef Q_OS_ANDROID
QAndroidJniObject::callStaticMethod( "org/whatever/YourActivity","shareUrl","(Ljava/lang/String;)V",QAndroidJniObject::fromString( url ));
#endif
}
在java端使用静态方法可以显着简化jni调用,因为您不必获取Activity实例.因为需要Activity上下文来发送Intent,所以在java端使用静态实例成员对象.
最后
以上就是贤惠老师最近收集整理的关于android自定义intent,Qt / QML Android最佳实践发送自定义Intent(共享URL)的全部内容,更多相关android自定义intent,Qt内容请搜索靠谱客的其他文章。
发表评论 取消回复