public final class ComponentName extends Object implements Parcelable, Cloneable, Comparable<ComponentName>
Activity
, Service
,
BroadcastReceiver
, or
ContentProvider
) that is available. Two
pieces of information, encapsulated here, are required to identify
a component: the package (a String) it exists in, and the class (a String)
name inside of that package.Parcelable.ClassLoaderCreator<T>, Parcelable.Creator<T>
Modifier and Type | Field and Description |
---|---|
static Parcelable.Creator<ComponentName> |
CREATOR |
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE
Constructor and Description |
---|
ComponentName(Context pkg,
Class<?> cls)
Create a new component identifier from a Context and Class object.
|
ComponentName(Context pkg,
String cls)
Create a new component identifier from a Context and class name.
|
ComponentName(Parcel in)
Instantiate a new ComponentName from the data in a Parcel that was
previously written with
writeToParcel(Parcel, int) . |
ComponentName(String pkg,
String cls)
Create a new component identifier.
|
Modifier and Type | Method and Description |
---|---|
ComponentName |
clone()
Creates and returns a copy of this
Object . |
int |
compareTo(ComponentName that)
Compares this object to the specified object to determine their relative
order.
|
int |
describeContents()
Describe the kinds of special objects contained in this Parcelable's
marshalled representation.
|
boolean |
equals(Object obj)
Compares this instance with the specified object and indicates if they
are equal.
|
String |
flattenToShortString()
The same as
flattenToString() , but abbreviates the class
name if it is a suffix of the package. |
String |
flattenToString()
Return a String that unambiguously describes both the package and
class names contained in the ComponentName.
|
String |
getClassName()
Return the class name of this component.
|
String |
getPackageName()
Return the package name of this component.
|
String |
getShortClassName()
Return the class name, either fully qualified or in a shortened form
(with a leading '.') if it is a suffix of the package.
|
int |
hashCode()
Returns an integer hash code for this object.
|
static ComponentName |
readFromParcel(Parcel in)
Read a ComponentName from a Parcel that was previously written
with
writeToParcel(ComponentName, Parcel) , returning either
a null or new object as appropriate. |
String |
toShortString()
Return string representation of this class without the class's name
as a prefix.
|
String |
toString()
Returns a string containing a concise, human-readable description of this
object.
|
static ComponentName |
unflattenFromString(String str)
Recover a ComponentName from a String that was previously created with
flattenToString() . |
static void |
writeToParcel(ComponentName c,
Parcel out)
Write a ComponentName to a Parcel, handling null pointers.
|
void |
writeToParcel(Parcel out,
int flags)
Flatten this object in to a Parcel.
|
public static final Parcelable.Creator<ComponentName> CREATOR
public ComponentName(String pkg, String cls)
pkg
- The name of the package that the component exists in. Can
not be null.cls
- The name of the class inside of pkg that
implements the component. Can not be null.public ComponentName(Context pkg, String cls)
pkg
- A Context for the package implementing the component,
from which the actual package name will be retrieved.cls
- The name of the class inside of pkg that
implements the component.public ComponentName(Context pkg, Class<?> cls)
pkg
- A Context for the package implementing the component, from
which the actual package name will be retrieved.cls
- The Class object of the desired component, from which the
actual class name will be retrieved.public ComponentName(Parcel in)
writeToParcel(Parcel, int)
. Note that you
must not use this with data written by
writeToParcel(ComponentName, Parcel)
since it is not possible
to handle a null ComponentObject here.in
- The Parcel containing the previously written ComponentName,
positioned at the location in the buffer where it was written.public ComponentName clone()
Object
Object
. The default
implementation returns a so-called "shallow" copy: It creates a new
instance of the same class and then copies the field values (including
object references) from this instance to the new instance. A "deep" copy,
in contrast, would also recursively clone nested objects. A subclass that
needs to implement this kind of cloning should call super.clone()
to create the new instance and then create deep copies of the nested,
mutable objects.public String getPackageName()
public String getClassName()
public String getShortClassName()
public String flattenToString()
unflattenFromString(String)
.unflattenFromString(String)
public String flattenToShortString()
flattenToString()
, but abbreviates the class
name if it is a suffix of the package. The result can still be used
with unflattenFromString(String)
.unflattenFromString(String)
public static ComponentName unflattenFromString(String str)
flattenToString()
. It splits the string at the first '/',
taking the part before as the package name and the part after as the
class name. As a special convenience (to use, for example, when
parsing component names on the command line), if the '/' is immediately
followed by a '.' then the final class name will be the concatenation
of the package name with the string following the '/'. Thus
"com.foo/.Blah" becomes package="com.foo" .str
- The String that was returned by flattenToString().flattenToString()
public String toShortString()
public String toString()
Object
getClass().getName() + '@' + Integer.toHexString(hashCode())
See Writing a useful
toString
method
if you intend implementing your own toString
method.
public boolean equals(Object obj)
Object
o
must represent the same object
as this instance using a class-specific comparison. The general contract
is that this comparison should be reflexive, symmetric, and transitive.
Also, no object reference other than null is equal to null.
The default implementation returns true
only if this ==
o
. See Writing a correct
equals
method
if you intend implementing your own equals
method.
The general contract for the equals
and Object.hashCode()
methods is that if equals
returns true
for
any two objects, then hashCode()
must return the same value for
these objects. This means that subclasses of Object
usually
override either both methods or neither of them.
equals
in class Object
obj
- the object to compare this instance with.true
if the specified object is equal to this Object
; false
otherwise.Object.hashCode()
public int hashCode()
Object
Object.equals(java.lang.Object)
returns true
must return
the same hash code value. This means that subclasses of Object
usually override both methods or neither method.
Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct
hashCode
method
if you intend implementing your own hashCode
method.
hashCode
in class Object
Object.equals(java.lang.Object)
public int compareTo(ComponentName that)
Comparable
compareTo
in interface Comparable<ComponentName>
that
- the object to compare to this instance.another
;
a positive integer if this instance is greater than
another
; 0 if this instance has the same order as
another
.public int describeContents()
Parcelable
describeContents
in interface Parcelable
public void writeToParcel(Parcel out, int flags)
Parcelable
writeToParcel
in interface Parcelable
out
- The Parcel in which the object should be written.flags
- Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE
.public static void writeToParcel(ComponentName c, Parcel out)
readFromParcel(Parcel)
.c
- The ComponentName to be written.out
- The Parcel in which the ComponentName will be placed.readFromParcel(Parcel)
public static ComponentName readFromParcel(Parcel in)
writeToParcel(ComponentName, Parcel)
, returning either
a null or new object as appropriate.in
- The Parcel from which to read the ComponentNamewriteToParcel(ComponentName, Parcel)