android中的finish()和this.finish()之间的区别

时间:2012-10-22 07:48:28

标签: java android

finish()this.finish()方法中提供onPause()onStop()是否相同?

5 个答案:

答案 0 :(得分:3)

是。请熟悉this. - >的含义它的值是对当前对象的引用。例如,如果您有一个名为Foo的类,并且它具有名为method()的方法,则其中的this将是对Foo的实例的引用(即是:Foo对象)。通常您不需要使用this

答案 1 :(得分:2)

任何上下文中的

this都是指包含类。因此,如果您在Activity中使用该方法,则this.finish()finish().相同但是,如果您在其他类类型中使用this,则可能不会有this.finish()

答案 2 :(得分:1)

即使这个问题已经有3年了。我更愿意为现在和未来的研究人员开辟道路。

this只是一个对象引用。除了需要从子类实例获取父类的引用之外,您不必每次都使用this

在使用Thread类时,请考虑一个示例。

public class A
{
   public A()
    {
        new Thread(new Runnable()
         {
             public void start()
             {
                  B child=new B(A.this);//In this scenario,'A.this' refers to the parent class 'A' in which the 'Thread' class instantiated.If you simply pass 'this' ,then it would refer to the 'Thread' class as this statement executed in the current scope.
             }
         }).start();
    }
}
public class B
{
A parent;
    public B(A parent)
    {
        this.parent=parent;//'this' refers to the class B ,so that it can access the global variable 'parent' ,then assigns it with the local variable 'parent' passed through the constructor.
    }
}

如上所列,this关键字有不同的用法。最好在此处引用oracle的文档https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

答案 3 :(得分:0)

finish()this.finish()是一样的。

对于问题的其他部分,请read about the Activity lifecycle

答案 4 :(得分:0)

在你的情况下它是一样的。使用this->有时很重要...如果你有一个成员和一个方法参数具有相同的名称,如下例所示:

    class foo{

    int number;

    void setNumber(int number);

    }

所以你可以写你的方法

    void foo::setNumber(int number)
    {
    this->number = number; 
    }

所以很明显你使用了哪个元素。但要小心不要使用相同的名称它不是很好。