Ich verwende OneSignal Push-Benachrichtigungsdienst. Wenn ein Benutzer auf die Push-Benachrichtigung klickt, wird automatisch eine neue Aktivität namens "Main2Activity.java" geöffnet. Wenn der Benutzer auf die Benachrichtigung klickt, funktioniert der Code und öffnet eine neue Aktivität. Aber wenn ich eine andere Push-Benachrichtigung sende, wenn der Benutzer auf die Benachrichtigung klickt, öffnet die Anwendung zuerst die "MainActivity.java". Nur wenn der Benutzer auf den Previus-Button am Telefon klickt, öffnet sich der "MainActicity2.java". Das ist mein CodePush-Benachrichtigung Öffnen Sie eine neue Aktivität
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.onesignal.OSNotificationAction;
import com.onesignal.OSNotificationOpenResult;
import com.onesignal.OneSignal;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OneSignal.startInit(this)
.setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
.init();
}
class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
// This fires when a notification is opened by tapping on it.
@Override
public void notificationOpened(OSNotificationOpenResult result) {
OSNotificationAction.ActionType actionType = result.action.type;
JSONObject data = result.notification.payload.additionalData;
String customKey;
if (data != null) {
customKey = data.optString("customkey", null);
if (customKey != null) {
Log.i("OneSignalExample", "customkey set with value: " + customKey);
Toast.makeText(MainActivity.this,"My Custom Key is:"+customKey,Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}
}
}
Vielen Dank!
Ok, aber das Problem ist, wenn der Benutzer auf die Benachrichtigung klicken sie geöffnet ist die MainActivity – Jack
dann diese Zeile in Ihrer Manifest-Datei hinzufügen, android: launchMode = "singleTop" Theb Ihre App wird nicht öffnen mehrere Aktivität Instanz –
Ich habe nicht verstanden, wie das mit dem Code zu tun. Kannst du mir bitte helfen? – Jack