Я только что столкнулся с этой проблемой, используя тот же пример кода локального сервиса из http://developer.android.com/reference/android/app/Service.html, Toast.makeText не был доволен только this
.Вам нужно использовать classname.this
например,
public class MyClass extends Activity {
private ServiceConnection mConnection = new ServiceConnection() {
public void myMethod () {
Toast.makeText(MyClass.this,
R.string.local_service_connected,
Toast.LENGTH_SHORT).show();
}
}
}
Без MyClass.
вы получите ошибку:
Метод makeText (Context, int, int) в типе Toast не применяется для аргументов (new ServiceConnection () {}, int, int)
Причина в том, что вы на самом деле во внутреннем классе.
См .: Использование «this» с именем класса
И, конечно, имя класса, оставленное в примере кода, равно Binder
, так что если ваш класс был назван так, он просторабота.