我有一个QT活动,使用JNI启动Android活动以连接Facebook。 这是正常的,但我获得Facebook权限后需要我的应用程序,回到QT中的qml
这就是我从QT调用Java活动的方式
void FacebookAndroid::startAndroidFacebook() {
QAndroidJniObject::callStaticMethod<void>("org.qtproject.example.MainActivity",
"startFacebookActivity",
"()V");
}
这是我调用的java活动 - 我实现了一个按钮以返回Qt活动:
public class MainActivity extends Activity {
....
static public void startFacebookActivity() {
String msgTag = "FACEBOOK_APP";
try {
Log.v(msgTag, "starting activity");
Activity mother = QtNative.activity();
Log.v(msgTag, mother.toString());
Log.v(msgTag, MainActivity.class.getName());
Intent intent = new Intent(mother, MainActivity.class);
mother.startActivity(intent);
} catch (Exception e) {
Log.e(msgTag, e.toString());
e.printStackTrace();
}
}
public void goBack(View v){
Log.d(QtApplication.QtTAG, "######### BACK BTN PRESSED");
Intent intent = new Intent(Intent.ACTION_VIEW);
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
//intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
intent.setClassName(this, QtActivity.class.getName());
startActivity(intent);
//navigateUpTo(intent);
}
}
正如您所看到的,我尝试设置所有类型的标志以使其正确返回 到以前的QML屏幕,但没有任何作用。 当按下它时,它应该返回到我的主要QML屏幕。
那么,任何人都可以帮忙吗?我相信这应该是一个常见的场景:从内部/ QML启动java Android Activity屏幕,然后返回。