In der Anwendung, die ich entwickle, habe ich einen Alarmmanager, der die Anwendung in bestimmter Zeit startet. Während dieses Prozesses übergebe ich einen String als Teil der Intents wie unten gezeigt.Wie werden die Extras an die Absicht übergeben, wenn die Anwendung mit dem Alarm Manager gestartet wird?
Intent LaunchIntent = context.getPackageManager().getLaunchIntentForPackage("Application Package Name");
String strName = "Preferences";
LaunchIntent.putExtra("STRING_NAME", strName);
context.startActivity(LaunchIntent);
Es öffnet die Anwendung. Aber in dem, wenn ich intent.getStringExtra("STRING_NAME")
, in der OnCreate() Methode der Startseite, der übergebene Zeichenfolge Wert kommt nicht.
In dieser Klasse zu initialisieren Ich bin der Alarmmanager für alle 40 Sekunden, wie in dem unten stehenden onCreate Verfahren gezeigt:
private static void SetScheduleSync(Context context) {
Intent downloader = new Intent(context, ScheduleSyncManager.class);
PendingIntent recurringDownload = PendingIntent.getBroadcast(context, 1000, downloader, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
int interval = 10000*4;
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, recurringDownload);
}
Im Innern des ScheduleSyncManager.class, ich habe Code geschrieben, um die Anwendung zu öffnen, indem die Extras als Kitzel der Absicht. Wenn die Anwendung geöffnet wird, überprüfe ich, ob zusätzliche Daten in der bestimmten Absicht vorhanden sind. Hier
ist die ScheduleManagerDeclaration:
public class ScheduleSyncManager extends WakefulBroadcastReceiver {
public Boolean IsCustomizingPresent = false;
String strName = "Preferences";
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Sync in the background has Started", Toast.LENGTH_SHORT).show();
performScheduleSync(context, intent);
}
public void performScheduleSync(Context context, Intent intent) {
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("com.sap.rex.ui");
launchIntent.putExtra("STRING_NAME", strName);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(launchIntent);
}
und ich bin Aufruf der ScheduleManager von Funktion SetScheduleSync() in OnCreate() -Methode, wie ich den Code unten geschrieben.
Bitte helfen Sie mir dabei. Ist es möglich, so zu tun?
Danke.
sicher werde ich versuchen und dich wissen lassen. Danke – coders
Ich habe müde. Aber es kommt immer noch nicht als Teil von Vorsatz-Extras auf. – coders
Vielleicht dies: LaunchIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); – ozo