从服务开始活动B,主活动始终首先调用

时间:2013-07-17 03:51:16

标签: android android-service

我有一个名为MainActivity的启动器活动。

MainActivity将启动KeyGuardService,KeyGuardService会注册一个ScreenOFF接收器,然后在onReceive中启动LockScreenActivity使用startActivity。

但每次都会在LockScreenActivity之前显示MainActivity。我已经根据其他问题尝试了许多解决方案。

Menifest就像fllow一样:

       <activity
        android:name=".activities.MainActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:taskAffinity="com.example.mylockscreen.main"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
    <service
        android:name=".services.KeyGuardService"
        android:label="@string/app_name"/>

    <activity
        android:name=".activities.LockScreenActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:screenOrientation="portrait"
        android:taskAffinity="com.example.mylockscreen.lock"
        android:theme="@android:style/Theme.Translucent"/>

onReceive如下

    BroadcastReceiver mMasterResetReciever = new BroadcastReceiver()
{
    public void onReceive(Context context, Intent intent)
    {
        String action = intent.getAction();
        Log.d(TAG, Constants.TAG + "service receive " + action);
        if ((action.equals("android.intent.action.SCREEN_OFF"))
                && (Preferences.getUserPrefBoolean(context, "app_on", true)))
        {
            Intent localIntent = new Intent(context, LockScreenActivity.class);
            localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            localIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            localIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
            KeyGuardService.this.startActivity(localIntent);
            Log.d(TAG, Constants.TAG + "service start activity");
        }
    }
};

任何人都可以告诉我原因,谢谢。

0 个答案:

没有答案