новая нить в 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()