如何"温暖的开始"通过adb进行深层链接访问

时间:2015-10-01 18:16:50

标签: android android-emulator adb

我正在编写一项服务,通过adb打开Android应用程序的深层链接:

(function () {
    'use strict';

    angular.module('app.services.sharepoint')
        .factory('termStoreSvc', ['$log', '$q', function ($log, $q) {
            var self = undefined;

            var termStoreSvc = function () {                
                self = this;

                self.init = init;

                self.deferred = $q.defer();
                self.promise = self.deferred.promise;
                self.ready = function (fn) {
                    return self.promise.then(fn);
                }
            };            

            function init() {
                $log.debug('Initializing');

                // do some stuff here                

                $log.debug('Initialized');
                self.deferred.resolve();
            };


            return termStoreSvc;
        }]);
})();

以上命令正常工作:

adb shell am start -W -a android.intent.action.VIEW -d http://www.example.com/deeplinktest com.example.mjohnst.deeplinktest

我想要做的是让应用程序已经打开/热到任何视图,并且仍然可以访问深层链接。

如果我在模拟器上打开了应用程序并尝试此操作,我会收到此警告:

Starting: Intent { act=android.intent.action.VIEW dat=http://www.example.com/... pkg=com.example.mjohnst.deeplinktest }
Status: ok
Activity: com.example.mjohnst.deeplinktest/.MainActivity
ThisTime: 606
TotalTime: 606
WaitTime: 731
Complete

并且未访问深层链接(应用程序的当前非链接视图被带到前台)。

我有没有办法通过adb或其他界面访问已打开的应用上的深层链接?

编辑:我知道在访问之前有一个Warning: Activity not started, its current task has been brought to the front 标志可以杀死该应用,但这不是我想要的。我希望热情的开始提供性能提升

1 个答案:

答案 0 :(得分:1)

我发现,如果您通过非深层链接活动启动应用,则需要深层链接" warm"会工作的。

使用此adb命令启动应用程序:

shell am start -a android.intent.action.VIEW -n {packageName}/{activityName}