我只是想从服务开始几天的活动。这不可能那么难!我想要的是这个:
1)从后台服务启动一个活动(由AlarmManager安排)。目前我正在使用此代码执行此操作
Intent i = new Intent(this, MyDialogActivity.class);
i.putExtra(MyDialogActivity.TEXT, myObject.getText());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
2) 显示此 Activity,无论根 Activity 在顶部,根 Activity 是否通过后退按钮被销毁,根 Activity 是否通过 Home 按钮暂停
3)无论设备是否处于待机状态都显示此活动(应在用户从待机状态唤醒设备后显示活动)
4)确定销毁活动并在用户看到活动并按下按钮(包括主页和返回按钮)后发送广播。目前我正在使用此代码执行此操作(pm 是 PowerManager)
protected void onPause() {
if (pm.isScreenOn()) {
sendBroadcast(retValue);
if (!isFinishing()) {
finish();
} else {
moveTaskToBack(true);
}
}
super.onPause();
}
5)防止此活动可以从调用服务以外的其他点开始。目前我正在通过在 AndroidManifest 中设置此属性来执行此操作:
android:name=".activities.MyDialogActivity" android:noHistory="true" android:excludeFromRecents="true"
但无论我在做什么,我都无法意识到 2) 和 3)。有人可以帮助我吗?
谢谢!