我有一个警报服务,它是一个设置警报的意图服务和一个启动通知的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>
答案 0 :(得分:1)
FLAG_ACTIVITY_NEW_TASK
继续使用Intent
,而不是PendingIntent
包装器。