首先我的service 启动一个Dialog:
Intent i = new Intent(this,DialogActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(i)然后关闭dialog,再finish DialogActivity长按home键,点击我应用的图标,为什么会重新启动DialogActivity可DialogActivity并不是启动的入口啊,请高手解答一下,多谢<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.houyu.activity"
    android:versionCode="1"
    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="7" />
<!-- 添加操作联系人的权限 -->  
<uses-permission android:name="android.permission.READ_CONTACTS" />  
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".PhonebookActivity"
            android:label="@string/app_name"
            >
           <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ContactsActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask">
        </activity>
        <activity android:name=".TestIntent" android:label="@string/app_name"
             >
             
        </activity>
        <activity android:name=".TestResult" android:label="@string/app_name"></activity>
        <activity android:name=".DialogActivity" android:label="@string/app_name"></activity>
        <service android:name=".TestService"></service>
    </application>
</manifest>

解决方案 »

  1.   

    你在service的哪个阶段启动的activity?如果是onStartCommand,它会重复调用的
      

  2.   

    是不是service本身没有stop掉啊?
    比如你用的startService启动的,不是用bindService
    这样退出应用程序,service还是运行的??
      

  3.   

    跟service有关系吗?是service启动了一个DialogActivity,这个activity finish后应该是在栈中弹出了,为什么长按home键后出现的快捷进入,会直接进到DialogActivity,DialogActivity并不是 <action android:name="android.intent.action.MAIN" />
      

  4.   

       因为DialogActivity并没有被系统回收
      

  5.   

    你跟踪一下你的代码,你的main activity ,service,和dialog activity ,应该就能发现什么问题了吧
      

  6.   

    按理说,是不可能的。应该是你的service后面再次启动了activity而你不知道。你可以在启动之前打个log看看
      

  7.   

    解决了,加了android:excludeFromRecents="true",把任务栏中的DialogActivity隐藏了