0

当我在 Galaxy s3 上尝试在 Titanium 中开发的 android 应用程序时,它只是打开了一秒钟,然后关闭而没有任何错误。意识到如果是“开发人员选项”下的“不保留活动”的错误,经过一些研究,我在这里找到了:https ://jira.appcelerator.org/browse/TIMOB-12939 。如果我取消选中“不保留活动”,一切正常。现在,我想通过我们检查的“不保持活动”使其工作,在上面的链接中我读到 Titanium 文档谈到了这一点,所以我最终来到这里:http ://docs.appcelerator.com/titanium/最新/#!/api/Titanium.Android.Activity。所以我改变了我的代码

if (OS_ANDROID) {
    Alloy.createController('home').getView().open(); }

var intent = Ti.Android.createIntent({
        action: Ti.Android.ACTION_MAIN,
        url:'home.js'
    });
intent.addCategory(Ti.Android.CATEGORY_LAUNCHER);
Ti.Android.currentActivity.startActivity(intent);

认为我可能无法使用简单的打开方式,例如(win.open())并且它崩溃了,因为该活动未在清单中声明。实际上,我没有找到一个很好的例子来说明如何使用活动和 tiapp.xml,如何添加它们?所以我在 tiapp.xml 中尝试了一些可能很愚蠢的东西,我添加了:

 <activity android:name=".HomeActivity" url="home.js"/>

我得到的是:

Unable to instantiate activity ComponentInfo{it.trenta.mobile/it.trenta.mobile.HomeActivity}: java.lang.ClassNotFoundException: it.trenta.mobile.HomeActivity

那么,如何在 Titanum 中声明活动?有什么方法可以避免此复选框影响您的应用程序(除了取消选中它:))?

提前感谢您的帮助!

4

1 回答 1

1

我创建了一个 android 活动以将其与警报对话框一起使用,因此我可以像这样关闭主要活动:

var mainActivity = Ti.Android.currentActivity;

$.mainWindow.addEventListener('android:back',function(e){
    $.dialog.show();
});

$.dialog.on('click', function(e){
    if (e.index == 0){
        mainActivity.finish();
    }
    else
        Ti.API.info('You clicked NO');  
});

UI.Window 还有一个活动属性,您可以阅读文档以进一步调查:

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-activity

我的 LG Galaxy L5 也有同样的问题(应用程序一打开就崩溃)我已经使用这个属性解决了这个问题:

navBarHidden : false

它指的是这个:

在 Android 上,设置此属性会强制创建重量级窗口。有关详细信息,请参阅此类的主要描述中的“Android 重量级和轻量级 Windows”。

于 2013-09-03T22:36:28.610 回答