关于QT for android 的notification,该如何解决
关于QT for android 的notification
大家有看过QT for android里面的这个例子吗:
qtdir\Examples\Qt-5.3\androidextras\notification
请问下里面的消息成功通知到状态栏后, 这个时候按下HOME键, 程序后台运行后, 如何在点击这个通知后回显主界面?
我是这样实现:
// 单击通知后会跳转到JavaForQtActivity类(也就是唯一一个继承QtActivity的实例)
m_pThis.intent = new Intent(JavaForQtActivity.m_pThis,JavaForQtActivity.class);
// 获取PendingIntent,点击时发送该Intent
m_pThis.pIntent = PendingIntent.getActivity(JavaForQtActivity.m_pThis, 0, m_pThis.intent, 0);
但是回显回来的是一片空白的界面(有个标题而已,但是我的主界面是有内容的!), 个位大神帮帮忙呀!
------解决思路----------------------
这是说qt5.3里面已经有了android开发的例子了,对吧
------解决思路----------------------
包名要给正确才行。基本上都是JAVA的代码。
------解决思路----------------------
appIntent.setComponent(new ComponentName("org.qtproject.example.QSMS", "org.qtproject.qt5.android.bindings.QtActivity"));
------解决思路----------------------
好像这是非原生安卓程序的问题。我用Qt开发的一个程序后台运行一段时间后切回去也是不能显示界面,还有一款比较有名的播放器RockBox好像也不是原生安卓程序,后台运行后切回去也不能显示出界面
大家有看过QT for android里面的这个例子吗:
qtdir\Examples\Qt-5.3\androidextras\notification
请问下里面的消息成功通知到状态栏后, 这个时候按下HOME键, 程序后台运行后, 如何在点击这个通知后回显主界面?
我是这样实现:
// 单击通知后会跳转到JavaForQtActivity类(也就是唯一一个继承QtActivity的实例)
m_pThis.intent = new Intent(JavaForQtActivity.m_pThis,JavaForQtActivity.class);
// 获取PendingIntent,点击时发送该Intent
m_pThis.pIntent = PendingIntent.getActivity(JavaForQtActivity.m_pThis, 0, m_pThis.intent, 0);
但是回显回来的是一片空白的界面(有个标题而已,但是我的主界面是有内容的!), 个位大神帮帮忙呀!
------解决思路----------------------
这是说qt5.3里面已经有了android开发的例子了,对吧
------解决思路----------------------
包名要给正确才行。基本上都是JAVA的代码。
public static void notify(int id, String title, String text)
{
if (m_notificationManager == null) {
m_notificationManager = (NotificationManager)m_activity.getSystemService(Context.NOTIFICATION_SERVICE);
m_builder = new Notification.Builder(m_activity);
m_builder.setSmallIcon(R.drawable.icon);
}
m_builder.setWhen(System.currentTimeMillis());
m_builder.setAutoCancel(true);
Notification notifier = m_builder.getNotification();
notifier.defaults = Notification.DEFAULT_ALL;
Intent appIntent = new Intent(Intent.ACTION_MAIN);
appIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// appIntent.setComponent(new ComponentName(m_activity.getPackageName(), m_activity.getPackageName() + "." + m_activity.getLocalClassName()));
appIntent.setComponent(new ComponentName("org.qtproject.example.QSMS", "org.qtproject.qt5.android.bindings.QtActivity"));
appIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
------解决思路----------------------
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
PendingIntent contentIntent = PendingIntent.getActivity(m_activity, 0, appIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notifier.setLatestEventInfo(m_activity, title, text, contentIntent);
m_notificationManager.notify(id, notifier);
}
------解决思路----------------------
appIntent.setComponent(new ComponentName("org.qtproject.example.QSMS", "org.qtproject.qt5.android.bindings.QtActivity"));
------解决思路----------------------
好像这是非原生安卓程序的问题。我用Qt开发的一个程序后台运行一段时间后切回去也是不能显示界面,还有一款比较有名的播放器RockBox好像也不是原生安卓程序,后台运行后切回去也不能显示出界面