通知不会启动活动

时间:2012-04-25 14:46:03

标签: android notifications android-pendingintent

我有一个警报服务,它是一个设置警报的意图服务和一个启动通知的onAlarmReceiver广播接收器。在我的通知中,我将意图设置到我的应用程序的主页面。当人们升级我的应用程序时,通知仍然可以正常工作,但有时并不总是将它们重定向到上次打开的最后一页。似乎没有启动待处理的意图。这是否意味着有一个异常导致应用程序加载以前的状态?或者app被杀了?显然它会回到以前的状态。我甚至将未决意图的活动改为其他东西,但仍然存在这样的问题......我怎样才能看到设备中发生了什么? 这就是我呼叫通知广播的方式:

AlarmManager mgrAlarm= (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE);
Intent intentAlarm = new Intent(ctxt, OnAlarmReceiver.class);
sender = PendingIntent.getBroadcast(ctxt, ++alarmCounter, intentAlarm, 0);
mgrAlarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

这是我的onAlarmReceiver

Intent welcomeIntent = new Intent(context, WelcomeActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, welcomeIntent,   Intent.FLAG_ACTIVITY_NEW_TASK);

清单:

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />     
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<application
    android:name="pvApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" android:debuggable="false">
    <activity  
        android:name=".WelcomeActivity"
        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=".unistall"></activity>
    <activity android:name=".Preferences" android:label="@string/set_preferences" ></activity>
    <activity android:name=".Questionnaire" ></activity>
    <activity android:name=".AfterSubmission"></activity>
    <activity android:name=".UserDemographics"></activity>
    <activity android:name=".Instructions"></activity>
    <activity android:name=".unistall"></activity>
    <activity android:name=".PersonalityTest"></activity>   
    <activity android:name=".finalQuestions"></activity>                
    <receiver android:name=".OnBootReceiver"  android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    <receiver android:name=".OnAlarmReceiver" android:enabled="true"  ></receiver>        
    <receiver android:name=".OnNetworkReceiver" >
        <intent-filter>
             <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
             <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
        </intent-filter>            
    </receiver> 
    <service android:name=".updaterService"    />
    <service android:name=".alarmService"   />
<receiver android:name=".onAppReplaced">
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_REPLACED" />
    <data android:scheme="package"/>           
  </intent-filter>
</receiver>

</application>

1 个答案:

答案 0 :(得分:1)

FLAG_ACTIVITY_NEW_TASK继续使用Intent,而不是PendingIntent包装器。