标签: taskaffinity

Android任务亲和力解释

该属性究竟taskAffinity用于什么?我已经阅读了文档但我无法理解.

任何人都可以解释外行人的任务亲和力吗?

android android-manifest taskaffinity

98
推荐指数
2
解决办法
4万
查看次数

从linux上开始设置进程的cpu亲和性

我想在启动时在linux上设置进程的cpu亲和性.

有像sched_setaffinity和taskset这样的方法,但它们需要进程的processid.它们可能导致潜在的迁移,例如在核心上启动进程,但在使用sched_setaffinity/taskset之后,它们被迁移到另一个核心.

我想要做的是从一开始就在特定核心上开始一个新的过程.

linux operating-system linux-kernel taskaffinity

14
推荐指数
1
解决办法
1万
查看次数

如何在完成后从最近的任务中删除taskAffinity中的singleTask活动?

假设我们有两个活动.

A - 主要活动,即"启用主启动器"(适当的意图过滤器等)

B - 具有singleTask规范的任务根活动(此活动只能有一个实例)和自定义taskAffinity(用于区分主要任务)根).

假设B代表一个任务,只有当它没有完成时才有效 - 返回它或者在完成它之后从最近的任务再次启动它不是一个选项.

在某些时候 - A开始B开始新任务.目标是在用户完成B时从最近的任务列表中删除B.用户可以从B导航到其他任务(使用主页长按)然后导航回B,只要它没有完成.从启动器启动A不会将B带到前台,因为它们具有不同的任务关联性.

Android将B识别为任务的根,因此即使B已完成,B也会在最近的任务列表中可见,并且用户始终可以返回到该任务.使用A将B移动到一个任务不是解决方案,因为在B运行的时间 - 用户应该能够在A和B任务之间切换.将excludeFromRecents添加到B的清单会将其从最近的任务列表中完全删除,这也是不好的解决方案.

怎么实现呢?(对不起,我的英语不好)

android taskaffinity android-activity back-stack

9
推荐指数
1
解决办法
2719
查看次数

android 4.4.X:taskAffinity&launchmode vs. Activity生命周期

我开发了一个简单的应用程序,它解释了我注意到的Android 4.4.X设备上的一些奇怪的行为.

假设我想要进行2次"主要"活动,其中第一次活动表示"Hello"(通过启动"HelloActivity")每秒恢复一次,第二次android:launchMode="singleTask" android:taskAffinity=".MyAffinity"定义.第二个是由第一个开始的.

我的守则

清单非常简单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.example.affinitylaunchmodebugtest.MainActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:label="HELLO"
        android:name="com.example.affinitylaunchmodebugtest.HelloActivity"
        android:configChanges="keyboardHidden|orientation|screenSize">
    </activity>

    <activity
        android:label="AffinityTestActivity"
        android:name="com.example.affinitylaunchmodebugtest.AffinityTestActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleTask"
        android:taskAffinity=".MyAffinity">
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

MainActivity在按钮单击时启动AffinityTestActivity并记录其生命周期.它还会在每次恢复时启动HelloActivity:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        System.out.println(this+" onCreate");
        super.onCreate(savedInstanceState);

        Button b = new Button(MainActivity.this);
        b.setText("START AFFINITY TEST ACTIVITY");
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View …
Run Code Online (Sandbox Code Playgroud)

android taskaffinity launchmode android-activity

9
推荐指数
1
解决办法
1984
查看次数

android:taskaffinity如何工作?

android:taskaffinity属性如何工作?

根据我的理解,按Home键会将活动移动到后台堆栈,但不会被销毁.我很迷惑.

android taskaffinity

7
推荐指数
1
解决办法
4208
查看次数

singleInstance 活动的任务关联性?

我想知道 singleInstance 活动的默认任务亲和力是什么?

由于每个 singleInstance Activity 在新任务中作为根 Activity 打开。并且无需声明 android:taskAffinity。

请参阅我已阅读 Android Activity 的开发人员指南和文档。

https://developer.android.com/guide/components/activities/tasks-and-back-stackhttps://developer.android.com/guide/topics/manifest/activity-element.html#aff

<activity android:name=".MainActivity"
                  android:launchMode="singleInstance"
        >
</activity>
Run Code Online (Sandbox Code Playgroud)

我想知道该任务的 taskAffinity - 字符串文字,其中 singleInstance 活动作为根驻留在其中。

android taskaffinity launchmode android-activity

4
推荐指数
1
解决办法
2097
查看次数

在 Android 11 中无法使用 taskAffinity 进行跨应用程序活动

我有两个应用程序,应用程序A和应用程序B,现在我想从应用程序A启动应用程序B中的一个活动,该活动的启动模式是\xe2\x80\x9csingleTask\xe2\x80\x9d。

\n

顺序:\n活动 X(应用程序 A)\xe2\x80\x94\xe2\x80\x94\xe2\x80\x94> 活动 Y(应用程序 B)\xe2\x80\x94\xe2\x80\x94\xe2\ x80\x94> 活动 Z(应用程序 B,launchMode=\xe2\x80\x9csingleTask\xe2\x80\x9d)

\n

默认的 AndroidManifest 配置中,任务管理器中会显示两个应用程序,我希望用户在任务管理器中只能看到应用程序 A 标签,因此当他们在任务之间切换时,不要点击应用程序 B。在 Android 11 之前(Android R),我使用如下属性taskAffinity来解决这个问题。

\n

Activity X 和 Activity Z,将其添加到 AndroidManifet.xml 中

\n

android:taskAffinity="com.abc.xxx\xe2\x80\x9d

\n

因此,这些活动可以同时包含在一项活动任务中。在 Android 10 中,它可以工作。

\n

然而,它在 Android11 中不再适用\xe2\x80\x99。而且,我没有\xe2\x80\x99找到任何与这个场景相关的新功能。

\n

如何使 ApplicationA\xe2\x80\x99s 活动任务容纳 ApplicationB 的活动,其启动模式为 singleTask?让用户在任务管理器中只能看到一个任务(ApplicationA)。

\n

android cross-application taskaffinity android-activity android-11

3
推荐指数
1
解决办法
910
查看次数

Android从广播接收器发起活动

我知道这可能不是最好的做法,但这就是我想要做的.

当我的广播接收器被调用时 - 启动一个不是全屏并且具有透明背景的新活动 - 在您当前的活动/桌面壁纸之上打开.

我到目前为止的代码如下:

我用以下方法创建+调用新活动:


  Intent testActivityIntent = new Intent(context, com.andy.tabletsms.work.SMSPopup.class);
                testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(i));
                testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                context.startActivity(testActivityIntent);
Run Code Online (Sandbox Code Playgroud)

然后活动的主题是:

机器人:主题= "@安卓风格/ Theme.Translucent.NoTitleBar"

而活动的代码只是一个简单布局的沼泽标准活动.然而,当该广播接收器启动活动时 - 它出现在应用程序启动时启动的上一个活动的顶部.....根据此图像显示: 替代文字

android broadcastreceiver activity-stack taskaffinity

2
推荐指数
1
解决办法
7161
查看次数