有没有办法以编程方式设置“任务关联”?我的意思是喜欢一些Intent旗帜或某事?我没有在Android文档中找到任何关于这一点的内容。
使用“android:taskAffinity”在AndroidManifest.xml中以静态方式设置亲和力并不符合我的需要。
答案 0 :(得分:0)
你不能。
taskAffinity
由ActivityInfo
的成员Activity
包含。
public class Activity extends ContextThemeWrapper
...
... {
// set by the thread after the constructor and before
// onCreate(Bundle savedInstanceState) is called.
@UnsupportedAppUsage
/*package*/ ActivityInfo mActivityInfo;
}
ActivityInfo
具有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;
根据源代码的注释,从taskAffinity
收集了AndroidManifest.xml
的信息。而且没有设置mActivityInfo.taskAffinity
的公共方法。
答案 1 :(得分:-1)
Android: Task affinity & Clear task
检查David Wasser的回答。大多数时候我们不需要为外部意图提供FLAG,但当然你可以做到。如果你想通过亲和力获得新的任务能力,那么定义&#39; Intent.FLAG_ACTIVITY_NEW_TASK&#39;
答案 2 :(得分:-2)
使用此方法: finishAffinity();