1

我是 android 开发的新手——使用 Titanium 开发我的第一个 Android 应用程序。

我遇到了一个问题,我的应用程序不断超时,但我不知道为什么。我觉得我的方法/理解 Titanium 和 android 的工作方式存在根本性错误,但我还没有弄清楚。

我的应用本质上是一个书签工具,类似于安卓的delicious。它:

  • 挂钩到 SEND 意图,以捕获来自其他应用程序的共享意图
  • 从 SEND 意图中获取主题和文本,并进行一些处理以解析出 URL 和标题
  • 将这些数据传递到网页

代码如下:

在 中/platform/android/AndroidManifest.xml,我添加了一个意图过滤器来捕获 SEND 操作:

<activity android:name=".Advocateio2Activity"
    android:label="Advocate.io"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>
</activity>

在 中/Resources/app.js,我检查发送意图、处理并打开一个特殊的 URL:

(function() {
    var baseUrl = "http://mydomain.com/bookmarklet";
    var intent = Ti.Android.currentActivity.getIntent();

    var win = Ti.UI.createWindow({
        backgroundColor: '#000',
        fullscreen: false,
        exitOnClose: true,
        layout: "vertical"
    });

    if (intent.hasExtra(Ti.Android.EXTRA_TEXT)) {
        win.open();
        var title = intent.getStringExtra(Ti.Android.EXTRA_SUBJECT);
        var body = intent.getStringExtra(Ti.Android.EXTRA_TEXT).replace(/\n/g, " ");
        var parts = body.split(" ");

        for (var i=0; i<parts.length; i++) {
            if (parts[i].search(/htt*/) == 0) {
                // this is a URL
                var url = parts[i];
                var bookmarklet_url = baseUrl + '?url=' + encodeURIComponent(url) + '&title=' + encodeURIComponent(title) + '&mobile=1';
            }
        }
        if (bookmarklet_url) {
            Ti.Platform.openURL(bookmarklet_url);   
        }
        win.close();
    }   

})();

这基本上是整个应用程序。很简单的想法。

当我直接调试和安装(通过 Titanium Studio)时,它工作正常,但是当我发布到 Play 商店时,应用程序每次都会崩溃。

该应用程序在处理发送意图时挂起(在我从“共享”菜单中选择了我的应用程序之后)——只是提供了一个黑屏。如果我运行调试会话,我会看到正在发生的Activity idle timeout for ActivityRecord事情,但我不确定为什么。

我的猜测是,我只是不知道流在 android 应用程序中是如何工作的,而且我正在泄漏内存、产生无限循环,或者没有正确管理我的应用程序视图/窗口。

无论如何,我完全被困住了——现在已经调试了一个多星期,但我无法获得一致的结果。

任何帮助将不胜感激。

谢谢!!

4

0 回答 0