Appcelerator Titanium Android:在没有通知的情况下从服务启动活动

时间:2014-03-09 15:39:52

标签: android android-activity titanium alarmmanager appcelerator

我正在使用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开发人员。

感谢您的时间和投入!

0 个答案:

没有答案