У меня очень странная ситуация.
Имея одно приложение, я решил создать еще один из кода первого.
Я скопировал файлы .xml, скопировал файлы .java, чтобы все было в порядке.
Но есть одна ОГРОМНАЯ проблема: мой метод onNewIntent(Intent intent)
вызывается в первом проекте, но он не вызывается во втором проекте (код тот же!)
Метод, который может вызвать тогда, но не может теперь запускаться
public void onClick(View arg0) {
Intent browserInt = new Intent (Intent.ACTION_VIEW,
Uri.parse("https://oauth.yandex.ru/authorize?response_type=token&client_id=zzzzz"));
browserInt.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(browserInt);
}
Здесь onNewIntent():
@Override
protected void onNewIntent(Intent intent){
System.out.println(" I WORKED!");
Uri uri = intent.getData();
if (uri!=null) {
String m = uri.toString().split("#")[1];
String[] args = m.split("&");
String arg = args[0];
String token = arg.split("=")[1];
System.out.println(token);
}
}
Я не вижу, например, "Я РАБОТАЛ" в своих журналах.
Я прочитал много похожих вопросов как на SO, так и через Интернет, попробовал установить флаги Intent SINGLE_TOP, SINGLE_TASK и т.д.
Здесь проект Android Manifest of WORKING:
<application
android:name="yyy"
android:icon="@drawable/yaru_icon"
android:allowBackup="false"
android:label="xxx"
android:theme="@style/LightTheme">
<activity
android:name=".Main"
android:label="xxx"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
Я довольно отчаянный, почему аналогичный код больше не работает?
EDIT: Я пробовал все: SINGLE_TOP, SINGLE_INSTANCE, SINGLE_TASK..
но потом я иногда делал это на другом мероприятии:
Main m = new Main();
m.onNewIntent(this.getIntent());
И это наконец сработало!
Я не знаю, будет ли это грязным обходным путем или ошибкой, если кто-нибудь может это объяснить, пожалуйста, комментируйте.