如何创建具有多个活动的Appcelerator Alloy android应用程序

如何创建具有多个活动的Appcelerator Alloy android应用程序,android,android-activity,titanium,titanium-alloy,Android,Android Activity,Titanium,Titanium Alloy,在android中,一个应用程序通常有多个活动来表示不同的入口点/视图。最基本的情况是ToDo应用程序,其中主活动将应用程序启动到索引视图,而辅助活动启动到特定的ToDo视图。虽然这对钛合金经典应用程序非常有效,但如果在主应用程序启动之前启动辅助活动,合金应用程序就会严重损坏 下面是一个简单的例子: 您可以使用ADB启动第二个活动: adb shell am start -n "com.kaztopia.multiactive/.SecondActivityActivity" -a androi

在android中,一个应用程序通常有多个活动来表示不同的入口点/视图。最基本的情况是ToDo应用程序,其中主活动将应用程序启动到索引视图,而辅助活动启动到特定的ToDo视图。虽然这对钛合金经典应用程序非常有效,但如果在主应用程序启动之前启动辅助活动,合金应用程序就会严重损坏

下面是一个简单的例子:

您可以使用ADB启动第二个活动:

adb shell am start -n "com.kaztopia.multiactive/.SecondActivityActivity" -a android.intent.action.VIEW -c android.intent.category.DEFAULT -e "message" "HERE_I_AM"
正如我在自述文件中所说,如果应用程序已经运行,那么第二个活动就可以完美地工作。但如果不是这样,它就坏得可怕。正如您在SecondActivity.js文件中看到的,我试图找到一种引导alloy的方法,但这不起作用:

if (typeof Alloy === 'undefined' || typeof Backbone === 'undefined' || typeof Alloy.Globals === 'undefined') {
  Ti.API.debug("-------------------------  NO ALLOY -------------------------");
  if (typeof Alloy === 'undefined') {
      var Alloy = require('alloy');
  }
  if (typeof Backbone === 'undefined') {
      var Backbone = require('alloy/backbone');
  }
  if (typeof _ === 'undefined') {
      var _ = require('alloy/underscore')._;
  }
  try {
    Ti.API.debug('Calling app.run()');
    require('app').run();
  } catch (err) {
    Ti.API.debug('Calling app._restart()');
    Ti.App._restart();
  }
  setTimeout(openModal, 1000);
}

这似乎与钛中的一个bug有关,我打开了一个Jira记录:这似乎与钛中的一个bug有关,我打开了一个Jira记录: