上午7:51,我的手机执行此代码启动Skype(我已将Skype设置为自动登录,因此它基本上会在7:51 AM将我登录到Skype):
public class MorningReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("MorningReceiver", "Entered");
PackageManager packageManager = context.getPackageManager();
Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");
context.startActivity(skype);
}
}
这曾经100%的时间都在工作。我会睡觉,我的电话会在每天早上7:51登录Skype。然而,几个月来我必须更改手机中的设置或其他内容,现在似乎冻结了“context.startActivity(skype);”然后等我向我的锁屏滑动,因为现在如果我在上午10点醒来,抓住我的手机并向下滑动锁定屏幕,Skype立即启动并登录我 - 它还没有启动并记录在上午7:51,我想要它。
我想知道是否有办法强制启动活动,因此它不必等待任何用户交互,并在我睡觉时将手机锁在我身边时启动应用程序。
仅供参考:我的手机上没有密码。
另外,如果需要,这就是我发送广播的方式(MorningReceiver扩展BroadcastReceiver)
//set a Calendar object to 7:51 AM (not shown here)
//use an alarm manager to trigger the 7:51 AM event
AlarmManager am = (AlarmManager) this.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
//send the broadcast
PendingIntent pi = PendingIntent.getBroadcast(this.getApplicationContext(), 0, new Intent(this.getApplicationContext(), MorningReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
//repeat this every day
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
感谢您的帮助!