Activityname.this()&和Activity之间有什么区别吗?这个?

时间:2013-09-09 18:03:45

标签: android android-intent android-activity forceclose

Activityname.this()&之间是否有任何区别Android中的this

我正在尝试使用对话框中的按钮从同一活动中打开活动?我在意图中使用getApplicationContext()。在某些手机中它可以正常工作,但在其他手机中它会强行关闭吗?

ActivityName.this 这个之间,我应该使用哪个&为什么呢?

2 个答案:

答案 0 :(得分:9)

  

Activityname.this()&这在Android?

这取决于你从哪里调用它。如果你在Activity内,而不是在onCreate内的听众或内部类中,那么没有。它们都引用Activity context

如果你在onClickListener内说,那么是。 this是指listener,您需要使用ActivityName.this或类似的内容

someButton.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        Intent i = (v.getContext(), NextActivity.class);   use the button context which will be the same as the activity context
        startActivity(i);
     }
});

这与使用DialogAlertDialog时相同,您需要使用ActivityName.this

This is an answer谈论Context s的区别,但如果我能找到,我会看到更好的

A great Context explanation

修改以获得更完整性

AFAIK,getApplicationContext()ActivityName.this适用于Toastsexample in the docs使用getApplicationContext()。但是Toast Docs

  

参数   context要使用的上下文。通常是您的Application或Activity对象。

所以有些情况可能会更好,但我总是使用Activity Context,我想我会一直纠正这个问题。

答案 1 :(得分:1)

没有MyActivity.this与您在活动本身时使用this是一回事,而不是像this引用runnable而不是上下文的runnable / p>

如果在片段中,您应始终使用thisgetActivity(),并且永远不要使用getApplicationContext()

在此处查看您不应使用getApplicationContext()

的原因

getApplication() vs. getApplicationContext()