在jmonkey引擎appstates中访问intent extras?

时间:2014-02-11 11:10:16

标签: android android-intent jmonkeyengine

我想访问jMonkey app中通过android intents传递的变量。我可以使用MainActivity中的典型intent变量读取代码来访问这些变量

   @Override
    public void onCreate(Bundle savedInstanceState) {
        //super.onCreate(savedInstanceState);
        Bundle parameters = getIntent().getExtras();
        System.out.println("hurr");
        if (parameters != null) {
            String name = parameters.getString("myextra");
            System.out.println(name);
            //Integer age = parameters.getInt("age");
        }
    }

但是我想在jMonkey AppStates中访问这些变量,但我不知道如何将包含这些变量的对象的引用传递给jMonkey系统。我无法从MainActivity访问AppStateManager,也无法使用JmeSystem对象从AppState访问JmeAndroidSystem引用。

是否有一种很好的沟通方式,而不是破解AndroidHarness和JmeSystem代码,以使JmeAndroidSystem可见。

1 个答案:

答案 0 :(得分:0)

JMonkey也在MainActivity中提供app变量实例。

您可以使用定义新的AppState在OnCreate()方法中存储Intent的上下文,该方法可以由app.getStateManager.getState(XYZ.class)访问。

String url = getIntent().getStringExtra("url");
String uname = getIntent().getStringExtra("username");
String pass = getIntent().getStringExtra("password");
String amcatID = getIntent().getStringExtra("amcatID");
String moduleID = getIntent().getStringExtra("moduleID");

if (url!=null && uname!=null && pass!=null && amcatID!=null && moduleID!=null) {
    System.out.println("hurrhurr");
    System.out.println(url);
    System.out.println(uname);
    System.out.println(pass);
    System.out.println(amcatID);
    System.out.println(moduleID);
    app.getStateManager().attach(new SOAPCommunication(url,uname,pass,amcatID,moduleID));
}