我正在使用benconding Alarmmanager Plugin在Android上设置闹钟。警报触发服务。当服务启动通知时,我可以单击通知并启动主Activity,它负责首先设置警报。这可以按预期工作。
这是来自我的alarmService.js的代码
var service = Ti.Android.currentService;
var serviceIntent = service.getIntent();
Ti.Android.stopService (serviceIntent);
var activity = Ti.Android.currentActivity;
var intent = Ti.Android.createIntent({
action : Ti.Android.ACTION_MAIN,
className : 'com.myApp.alarmtest.AlarmTestActivity',
flags : Ti.Android.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Ti.Android.FLAG_ACTIVITY_SINGLE_TOP
});
intent.addCategory(Titanium.Android.CATEGORY_LAUNCHER);
var pending = Ti.Android.createPendingIntent({
activity : activity,
intent : intent,
type : Ti.Android.PENDING_INTENT_FOR_ACTIVITY,
flags : Ti.Android.FLAG_ACTIVITY_NO_HISTORY
});
var cfg = {
contentIntent : pending,
contentTitle : 'Alarm!',
contentText : 'Jupiiee',
tickerText : 'Juppiee',
when : new Date().getTime(),
icon : Ti.App.Android.R.drawable.appicon,
flags : Titanium.Android.FLAG_AUTO_CANCEL | Titanium.Android.FLAG_SHOW_LIGHTS | Titanium.Android.FLAG_INSISTENT
};
var notification = Ti.Android.createNotification(cfg);
Ti.Android.NotificationManager.notify (1, notification);
Ti.Media.vibrate([0,100,200,100,100,100,100,100,200,100,500,100,225, 100]);
但我想在没有通知的情况下启动活动。当警报启动服务时,服务应启动/重新启动活动而无需用户交互。
我的闹钟在合适的时间被触发,振动正常,调试器告诉我,活动已经开始,但我的手机上没有任何变化(我正在设备上测试)。我没有得到任何错误,但应用程序未启动或放入前台。 [编辑]在闹钟开始之前,我转到主屏幕。
这是我的alarmService.js
的更改代码var service = Ti.Android.currentService;
var serviceIntent = service.getIntent();
Ti.Android.stopService (serviceIntent);
var activity = Ti.Android.currentActivity;
var intent = Ti.Android.createIntent({
action : Ti.Android.ACTION_MAIN,
className : 'com.myApp.alarmtest.AlarmTestActivity',
flags : Ti.Android.FLAG_ACTIVITY_NEW_TASK | Ti.Android.FLAG_ACTIVITY_SINGLE_TOP
});
intent.addCategory(Titanium.Android.CATEGORY_LAUNCHER);
Ti.Android.currentActivity.startActivity(intent);
Ti.Media.vibrate([0,100,200,100,100,100,100,100,200,100,500,100,225, 100]);
甚至可以这样做吗?我花了4天的时间阅读文档和stackoverflow以及许多主题,但是大部分内容都涉及从Notifications开始活动。我也是App Developement的新手,尽管我是一名熟练的Web开发人员。
感谢您的时间和投入!