【问题标题】:intent extras with single top mode in android在android中具有单顶模式的意图附加功能
【发布时间】:2013-03-27 21:12:19
【问题描述】:

Android: new Intent() starts new instance with android:launchMode="singleTop"

按照上面的链接,我得到了单顶工作,但我很难将“额外”放入意图中,然后对我的原始活动执行功能.. 这可能吗?

Intent I= new Intent(context, away.class);
I.putExtra("number",  number);
I.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |       Intent.FLAG_ACTIVITY_SINGLE_TOP);

这个 sn-p 来自我的广播接收器,它引用回我的主类..在我的主类中,我的代码是这样的..

Intent I = getIntent();
int number = I.getIntExtra("number", -1);

所以我的问题如下.. 我怎样才能让我的主要活动来评估我发回的号码,然后在我的接收器类触发它时触发一个函数?

【问题讨论】:

    标签: java android android-intent


    【解决方案1】:

    你必须重写 onNewIntent 并在那里获得额外的东西。

    You have to override onNewIntent and get the extra there.  
    
    @Override
    protected void onNewIntent(Intent intent)
    {
        super.onNewIntent(intent);
    
    
        int number = intent.getIntExtra("number", -1);
    }  
    

    在你的广播接收器中

    Intent I = new Intent(context, away.class);
    I.putExtra("number",  number);
    Log.d("here", "number = " + number);
    I.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(I);
    

    【讨论】:

    • 好的,所以现在我的应用程序不会崩溃。我可以从 onNewIntent 触发一个函数吗?我试过了,它没有做任何事情..
    • onNewIntent 在 onResume 之前被调用。我不知道您尝试调用什么函数。将其称为 onResume。
    • 我没有走那么远,我只是尝试了一些随意的东西,比如敬酒说嘿......但我认为 onResume 是如果你离开你的活动?(顺便说一句,我是一名网络程序员,我是想学习java所以请多多包涵..)
    • 我刚刚添加了我添加到我的主类中的内容
    • onResume 表示您回到活动,onPause 表示您要离开。而不是 toast,只需放入 Log.d("onNewIntent", "number = " + number) 并查看 logcat 是否显示正确的数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多