I am a little bit confused about the ComponentName class in Android.

There are different ways to get to a component name object, but I don't know when to use which... and why!

Example:

  • Application package is de.zordid.sampleapp
  • but widget provider class is de.zordid.sampleapp.widget.WidgetProvider

Using

ComponentName cn = new ComponentName("de.zordid.sampleapp.widget",
    "WidgetProvider");

I got this component info: ComponentInfo{de.zordid.sampleapp.widget/WidgetProvider}, but I could not use this - the component is unknown! But the JavaDoc says I should give the package and the class within that package - and that is what I did, didn't I??

Using

ComponentName cn = new ComponentName(context, WidgetProvider.class);

yields ComponentInfo{de.zordid.sampleapp/de.zordid.sampleapp.widget.WidgetProvider} - and that works fine!!

There is even another way to get a ComponentName - by context and a string. Which one should be used where and when??

Thanks!

Edit
Report