новая нить в Titanium Hyperloop

Я хочу использовать Huawei Push Kit в моем приложении Appcelerator Titanium с Hyperloop.

    var tokenString = '';
    var Activity = require('android.app.Activity');
    var ActivityToken = require('com.huawei.hms.aaid.HmsInstanceId');

try{    
        const activity = new Activity(Ti.Android.currentActivity);
        tokenString = ActivityToken.getInstance(activity).getToken(appID, "HCM");
        console.log('tokenString', tokenString); 
}
catch (e){
    console.log(e);
}

Но я получаю сообщение об ошибке: "Работа в ГЛАВНОМ потоке запрещена".

Как запустить код в отдельном потоке?

2 ответа

Вы можете попробовать автоматическую инициализацию, вызвав метод setAutoInitEnabled(boolean enable) в HmsMessaging.

ActivityToken.getInstance(activity).setAutoInitEnabled(true);

Примененный токен возвращается методом onNewToken() после завершения настройки.

Оберните код внутри фонового потока, так как ошибка ясно говорит о том, что это не может быть выполнено в основном потоке. Обычно трудоемкие вызовы не разрешены в основном потоке, onCreate и т. Д.

Thread { 
…
    }.run()