开发者社区 问答 正文

关于android中TestActivity.this.sendBroadcast(intent)

android中TestActivity.this.sendBroadcast(intent)
这个是 类.this方法吗还是对象.this.方法
如何理解这条语句呢

展开
收起
爵霸 2016-03-20 11:48:44 2686 分享 版权
2 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    this是你当前对象的引用,在你的例子中你肯定在内部类ClickEvent里面实现intent,他指向的是ClickEvent,而不是你要传入的Activity。
    Activity.this指向你所填写的Activity名字的一个实例,也是引用。
    this作为当前对象,直接用在Activity里面是没问题的,当this在匿名内部类中使用,当前的对象就变成new的内部类,而你传入的东西如果是整个Activity的话,就要Activity.this了。

    Button b.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {  
        public void onClick(DialogInterface dialog, int which) {  
            Toast.makeText(AlarmActivity.this,"闹钟5秒后启动", Toast.LENGTH_SHORT);     
    }};  

    所以在这里面需要指定是哪个activity的,Toast的那条语句移到外面,删掉AlarmActivity也行。 所以还是建议,全部用成Activity.this,清晰。

    2019-07-17 19:09:22
    赞同 展开评论
  • 明白了,你有一个内部类

    比如

    class A
    {
        int x;
        class B
            {
                int x;
                    void foo()
                    {
                        int y = x; // 不知道这个x是哪个。
                            B.this.x 内部类的
                            A.this.x 外部类的
                    }
            }
    }
    2019-07-17 19:09:21
    赞同 展开评论
问答分类:
问答标签:
问答地址: