第一种方式:
你必须改变这一行
intent = new Intent(m_instance, NotificationClient.class);
to
Intent intent = new Intent(mActivityInstance, mActivityInstance.getClass());
and
contentIntent = PendingIntent.getActivity(m_instance, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
to
contentIntent = PendingIntent.getActivity(mActivityInstance, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
注意mActivityInstance是你的mainActivity。
我从 C++ 和 JNI 设置 mActivityInstance,如下所示:
const QAndroidJniObject m_JavaNotification("com/falsinsoft/qtandroidtools/AndroidNotification",
"(Landroid/app/Activity)V",
QtAndroid::androidActivity().object<jobject>());
在我的 AndroidNotification.java 中:
public class AndroidNotification {
private final Activity mActivityInstance;
public AndroidNotification(Activity ActivityInstance)
{
mActivityInstance = ActivityInstance;
}
}
第二种方式(我不确定这能解决你的问题!):
更改manifest.xml 中的这一行:
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="YourProjectName" android:icon="@drawable/icon">
to:
<application android:hardwareAccelerated="true" android:name="your java class extend from QtActivity" android:label="YourProjectName" android:icon="@drawable/icon">