Android 上的 Titanium Appcelerator Video Player 后退按钮

Titanium Appcelerator Video Player Back Button on Android

我是 Titanium 应用程序开发的新手。我正在使用 ListView 制作视频标题列表。当我点击一个项目时,特定的视频播放正常。但是,当我在 Android 中按下后退按钮时,应用程序退出而不是返回到之前的视频列表。我试过 android:backandroidback 事件 window 但还是一样。我该如何解决这个问题???顺便说一句,我在 Titanium

中使用 Alloy 框架

index.js

videos.fetch({query: 'select * from '+ videos.config.adapter.collection_name + ' where video_id = '+ vid_id});
    var args;
    for (var vd=0 ; vd < videos.length; vd++){
        var e = JSON.parse(JSON.stringify(videos.at(vd)));
        args = {
            parent_id : lsn_sub,
            video_data : e.video_data
        };

    console.log(args.video_data);
    var mediaview = Alloy.createController("media", args).getView();
    mediaview.open();

media.js

var parent_view = args.parent_id;
var vid_media = args.video_data;

    console.log("parent source: "+parent_view);
console.log($.vid_media.url);

    $.vid_media.url = vid_media ;

$.media.addEventListener('androidback', function(e){


    alert("android back");


});

views/media.xml

<Alloy>
<Window class="container">
        <VideoPlayer id="vid_media" ns="Ti.Media" ></VideoPlayer>
</Window>

后退按钮退出应用程序,不会返回到上一屏幕。

将您的 秒 window 的模型 属性 设置为真。

<SecondWindow class="container" modal="true"></SecondWindow>

如果您想在用户按 android 回到您的第一个屏幕时关闭应用程序,请在您的第一个 window 上设置 modal 和 exitOnClose true。

<FirstWindow class="container" modal="true" exitOnClose></FirstWindow >

没有为其添加 android:back 事件。

希望对您有所帮助

另一种可能的解决方案 就是取消androidback事件的bubbling effect

$.media.addEventListener('androidback', function(e) {
    e.cancelBubble = true;
    [...Your logic here...]
}

感谢@suraj 和@victor 的大力帮助,但我已经弄明白了。

它不起作用的原因是因为我只在模拟器中测试它,而不是在真实设备上。当我在真实设备上 运行 时,android 的 'back button' 实际上工作正常。它停止了我的视频并返回到上一个屏幕。

我们真的应该在真实设备上进行测试,而不是依赖模拟器。祝你有美好的一天! :)