姬長信(Redy)

android – onNewIntent未被调用


我的情况很奇怪.
有一个应用程序,我决定从第一个应用程序的代码创建另一个.
我复制了.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和Internet上都阅读了很多类似的问题,尝试设置Intent标志SINGLE_TOP,SINGLE_TASK等等.

这是Android Manifest的WORKING项目:



    
        
            
            
        
    

我非常绝望,为什么类似的代码不再起作用了?

编辑:我已经尝试了一切:SINGLE_TOP,SINGLE_INSTANCE,SINGLE_TASK ..
但后来我偶尔会在另一项活动中做到这一点:

Main m = new Main();
m.onNewIntent(this.getIntent());

它终于奏效了!
我不知道,无论是肮脏的解决方法还是错误,如果有人能够解释它,请评论.