您好我正在appcelerator钛开发Android应用程序。当ca用户做出某个动作时,我需要重新启动应用程序。我怎样才能做到这一点?我读到我可以通过使用android活动和意图来做到这一点。有人能告诉我如何做到这一点吗?
答案 0 :(得分:0)
尝试此操作以重新启动您的应用
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
答案 1 :(得分:0)
通过重新启动你的意思是重新加载alloy.js然后再转换index.js,就像应用程序关闭并重新启动时一样?如果不再重新执行alloy.js,您可以尝试跟踪数组中所有打开的窗口,然后单击按钮,关闭所有窗口并重新启动index.js或控制器,无论您的入口点是什么申请。
存储窗口引用的示例代码
windowStack.push({
windowObj : windowObject, //Ti.UI.createWindow
winName : windowName, //Provide a human readable name for logs
winId : windowId //Unique id for every window you open to identify
});
使用此功能,您始终可以参考所有窗口。如果要关闭窗口,只需按照LIFO流程关闭所有窗口即可。
注意:如果关闭任何窗口并且如果将exitOnClose设置为true,则整个应用程序将关闭而不会重新启动。因此,对于这种情况,您可以创建一个空窗口作为要插入堆栈的第一个窗口。重新启动时,关闭除exitOnClose为true的特殊窗口以外的所有窗口,并关闭所有其他窗口的窗口。因此,当您想要关闭整个应用程序时,请关闭所有窗口。启动时,只需关闭除此特殊窗口外的所有窗口。
您也可以使用任何应用程序初始化代码,您可以将其移动到实用程序JS,它将由您启动的第一个功能窗口调用。
如果您还需要任何进一步的输入,我可以根据您的需要发布更多示例代码。