android在service中启动Activity问题

问什么我在service中启动activity,新的activity闪了一下就被原来的覆盖了?附源码:
这段代码在service中,想弹出“激活设备管理器”页面的功能
Intent in = new Intent();
in.setAction(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
in.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
context.startActivity(in);

在跳转的时候把当前的activity finish()掉 。

你的service的启动者用的哪个方式启动的,bind和start不同,试着用start看下
还有,检查一下你在service的哪个回调方法里面启动的

谢谢您的回答,我现在找到原因了,但是还没找到解决办法。问题出在in.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK)这句话,
(1)当在activity中启动activity是没有问题的,但service启动activity时报错并提示加上in.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK)这句;
(2)加上这句后,就出现所说的问题,新的activity闪一下就回到原来的旧activity了。
(3)目前还没有找到解决办法 T.T

你能把错误的日志粘出来?

  设备管理器的激活页面是在 系统 Setting  里面的, 在类 DeviceAdminAdd 下面我找到了下面代码:



    if ((getIntent().getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
        Log.w(TAG, "Cannot start ADD_DEVICE_ADMIN as a new task");
        finish();
        return;
    }

从这里可以知道, 设备管理器激活页面是不准许用一个新的Task来启动的。