在android中,应用程序通常有多个活动来表示不同的入口点/视图。最基本的情况是ToDo应用程序,其中主要活动将应用程序启动到索引视图,但辅助活动将启动到特定的ToDo视图。虽然这对于Titanium经典应用程序非常有效,但如果在主应用程序启动之前启动了辅助活动,那么Alloy应用程序会被严重破坏。
以下是一个简单示例:https://github.com/DaKaZ/multiactive
您可以使用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文件中看到的那样,我试图找到一种引导合金的方法,但这不起作用:
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);
}