is there a way to set the "task affinity" programmatically? I mean like with some Intent flag or sth? I didn't find anything about this being possible in the Android docs.
Setting the affinity in a static way in the AndroidManifest.xml with android:taskAffinity
does not suit my needs.
You cannot.
taskAffinity
is contained by ActivityInfo
, which is member of Activity
.
Source code of Activity
public class Activity extends ContextThemeWrapper
...
... {
// set by the thread after the constructor and before
// onCreate(Bundle savedInstanceState) is called.
@UnsupportedAppUsage
/*package*/ ActivityInfo mActivityInfo;
}
And ActivityInfo
has taskAffinity.
Source code of ActivityInfo
/**
* Information you can retrieve about a particular application
* activity or receiver. This corresponds to information collected
* from the AndroidManifest.xml's <activity> and
* <receiver> tags.
*/
public class ActivityInfo extends ComponentInfo implements Parcelable {
/**
* The affinity this activity has for another task in the system. The
* string here is the name of the task, often the package name of the
* overall package. If null, the activity has no affinity. Set from the
* {@link android.R.attr#taskAffinity} attribute.
*/
public String taskAffinity;
According to the comment of source code, information of taskAffinity
is collected from AndroidManifest.xml
. And there is no public method to set mActivityInfo.taskAffinity
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With