Setting "task affinity" programmatically
You cannot.
taskAffinity
is contained by ActivityInfo
, which is member 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.
/** * 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
.