Tasker
Home
Tour
Download
FAQs
Reviews
Wiki
Forum
Main
Pros
Feature Requests
Developer
Userguide
Index: en es fr zh
1 Page: en
More
Developers
Bugs / Limitations
History
Release Notes
Next Version
Plans

This document is a one-page compilation of the on-device userguide intended for printing out for use as a reference.

Tasker Userguide

Main Screen

This is the first screen shown when you startup Tasker. It allows you to organize and configure Tasker's four main 'building blocks': Profiles, Tasks, Scenes and Variables.

Main Tabs

  • Click on a tab to view a list of the relevant things
  • Long-click on a tab to get options

Profiles

Each item in the list represents a profile. The profile links contexts (conditions) on the left to tasks which should be run on the right. The profile name is green if the profile is active. There are three main parts to each profile.

1. Title Bar

This shows the profile name (or description if it has no name) and the check-mark icon on the right shows whether the profile is enabled or not.

  • Click on the name to expand / collapse the profile. When expanded, the contexts and tasks (described below), are visible.
  • Long-click on the profile name to get profile options
  • Click on the check-mark icon to toggle whether the profile is enabled or not.
  • Click-and-drag the area at the right side of the title bar drag it around. Note that the enable icon can also be used for dragging.

Important: the check-mark does not mean the profile is active (will run its tasks), it means that the profile can become active if its conditions are met.

2. Contexts

On the left hand side of the profile are an icon and text for each context in the profile. The contexts dictate when the profile should become active.

  • Click on the context to edit it
  • Long-click to show management options, such as editing or adding a new context

You can configure what clicks and long-clicks on contexts do in Menu / Prefs / UI.

3. Tasks

On the right hand side of the profile are one or two tasks to carry out based on its activation status.

  • Click on the task to edit it
  • Long-click to show management options.

A task indicated with a green, right-pointing arrow is an entry task, executed when the profile first becomes active.

A task indicated with a red, left-pointing arrow is an exit task, executed when the profile becomes inactive again.

Exception: a profile containing an event context or a repeating or non-ranged time context has two green arrows, to denote that both tasks are executed immediately because the profile activation and deactivation is instantaneous.

Tasks

The task list shows the named
tasks which have been created.
  • Click on a task to edit it
  • Long-click for options
  • Click-and-drag at the right hand side to drag the task (e.g. to the trash bin)

Note that a profile can be assigned an anonymous task (one without a name) which is not accessible in the task list, only via the relevent profile in the profile list.

Scenes

The scene list shows the
scenes which have been created.
  • Click on a scene to edit it
  • Long-click for options
  • Click-and-drag at the right hand side to drag the scene (e.g. to the trash bin)

Scenes marked with a star icon have been created but may be visible or invisible.

Variables

By default, all global user-variables that Tasker knows about are listed, which includes any that have a value set or are mentioned somewhere in a profile or task.

  • Click on a variable to edit it
  • Long-click for options

Note that variables whose names are all lower-case are local variables and not shown because they are only valid within the task that refers to them.

At the bottom of the variable list is an upwards-pointing faded arrow. It can be dragged up to show variable filter controls.

  • Indexed (button)
    includes variables whose names end in a number e.g. %LOC3, otherwise they are excluded.
  • Empty (button)
    includes variables which have currently have no value assigned, deselect to show only variables that have a value.
  • Referenced (button)
    includes variables which are referenced in profiles or tasks.
    Deselect to show 'orphan' variables.
  • Filter (textbox)
    excludes variables which don't contain the specified text somewhere in their name (case-sensitive)

Unlike most screens in Tasker, changes made in the variable list cannot be cancelled.

Bottom Controls

Cancel Button
Discard all changes to user data that have been made since starting the Tasker UI.
Accept Button
Apply the changes that have been made since last starting the Tasker UI. Pressing the Back hardware button has the same effect. Home has the same effect unless a dialog is showing.
Plus Button

Create a new Profile, Task, Scene or Variable, depending on the current tab.

On/Off Toggle
Tasker does not do anything when you leave the user inteface, unless this button is set to On (green light showing). When you set it to off, Tasker's event monitor is immediately stopped if it was previously running.

Projects

Tasker allows organisation of profiles, tasks, scenes and variables into groups called Projects, each with a separate Project Tab.

The projects tabs are accessed by dragging entity tabs down via the faded arrow just underneath them. Drag the other way to hide them.

  • Click-and-drag a profile, task or scene to a project tab to move it to that project
  • Click on a project tab to switch to viewing only things in that project
  • Long-click on a project tab for options, including adding a new tab

The first tab has a slightly special status, it cannot be removed and anything which is not a member of another project is placed there.

Menus

Menu Item: Browse Solutions

Links to websites with projects, profiles etc offering solutions for common problems. Important: once downloaded you need to import the file into your active user data. For example, profiles are imported by long-clicking the profile tab and selecting Import.

Menu Items: Data

Clear
Removes all data that has been created to that point. Does not remove preferences (use Menu / Preferences and click Defaults for that) or variables (long-click on the Variables tab for that).
Backup
Saves the existing user data to a backup file on the SD card (if present). The file is /sdcard/Tasker/userbackup.xml.
Restore
Replaces the existing profile configuation with that from the SD card.

Application Context

An Application Context is activated when the selected application is running in the foreground and deactivated otherwise.

The button in the bottom right indicates whether the context is inverted or not. If the button is lit-up, this context will become active when any application apart from the selected one is launched.

Application Checking

When any profiles have application contexts specified, Tasker checks frequently to see if one of those applications has been launched. The default is every 1.5 seconds.

If you would like quicker response, or you suspect this is severely increasing your battery usage, you can change this value in preferences (select Menu / Preferences / Monitor from the main screen).

Time Context

A Time Context specifies a particular range, or one (or more) points in time. There are three major components in the selection dialog, one of which must be selected (by enabling its checkbox on the left):

  • From Time: the starting time of the range. If it's not specified, 00:00 is assumed.
  • To Time: the end time of the range. If it's not specified, 11:59 is assumed.
  • Repeat: if no repeat is selected, the context is assumed to be a continuous range which starts at From Time and ends at To Time. If a repeat is specified, the first occurrence is at From Time and then every X hours or minutes until End Time.

Notes:

  • to specify a precise time, set From and To times the same. In that case, the context is treated as an instant event, it it only active for a fraction of a second, so no setting restoration is done.
  • each repeat (if Repeat is set) is also treated like an instant event.

Day Context

A Day Context allows specification of one or more months and/or days of the week/month.

Month Specification

The months are listed at the top, any of which can be selected. Selecting no month has the same meaning as selecting every month i.e. has no restriction on when the profile will become active.

Day of Week/Month Specification

Days of the week (Sunday, Monday etc) and/or month (1st, 9th etc) can be selected independently with the pulldown centre-right. This will initially be for Week Days if there are any defined, otherwise Month Days.

Selecting no day has the same meaning as selecting every day.

If you select both days of the week and days of the month, it requires both conditions to be fulfilled for the profile to become active e.g. selecting Mon,Tue and 11th means the profile will become active when the day is a Mon or Tuesday and simultaneously the 11th day of the month.

If you are unsure if you have specified the day(s) you require, click the Done button and you will see a verbal description at the top of the Profile Edit screen. You can click on this to try again if it's not correct.

Location Context

A location context specifies a circular geographical area in which it is active. It is formed by a centre point (latitude, longitude) plus a radius around that point.

Location Providers

A location provider is a method of supplying geographical coordinates. Tasker must use one or more location providers to be able to decide when a location context should become active or inactive.
GPS

The most accurate provider available (around +-10m), but its performance degrades quickly indoors and it uses a relatively large amount of power.

To set the frequency of GPS fixes, see Menu / Preferences / Monitor. GPS Check Time determines the check frequency in seconds while the device is awake, Off Check Time while the device is asleep.

GPS will only be used for a particular context if it is specified in the location edit screen.

Network
This provider uses a combination of cell-towers and WiFi information (if wifi is enabled) to determine the device's geographical location. It is less power-hungry than GPS, but also less accurate (sometimes +- several kilometres) and requires data network availability.

Network will only be used for a particular context if it is specified in the location edit screen.

See also:

Location Edit

This screen allows configuration of a
Location Context.

Map Display

The map shows:
  • The location (base of the flag icon) and names of all defined location contexts
  • The radius of the location currently being defined (the inner circle)

Location contexts other than the one currently being defined have a small fixed-radius bluish base.

Map Controls

Use a long-click on the map to select a location for this context.

Use the pull-down selector under the map to specify the radius for this context.

Important: if your radius is too small compared to the accuracy of the fixes you are receiving, your context may never go active. If you can't get a fix, try increasing the radius. Typically, a good radius would be around twice the accuracy of the fixes you are receiving.

Tap on the map to bring up zoom controls and buttons to enable the Satellite Overlay (left) and Street View (right). Note that the Street View sometimes does not update until the map is dragged slightly.

If you have no internet available in order to retrieve the map tiles, you can still use the Get Fix button (see below) to specify your current location.

Bottom Buttons

Net Button
The Net toggle button specifies whether to use the Network location provider to monitor for this location
GPS Button
The GPS toggle button specifies whether to use GPS to monitor for this location (assuming it is available on the device). If GPS is not used, the network will need to be available in order to query for location fixes based on cell-towers or WiFi data.
Get Fix Button

Acquires a location fix using the enabled and available providers (make sure the GPS Button is clicked first if you want to use GPS).

Once a fix is acquired, the latitude, longitude and radius of this location context are set according to it. If you reduce the radius after a fix, Tasker may no longer accurately detect whether you are in or out of the context.

When trying to determine current location, Tasker will keep going with fixes until they stop improving (e.g. as the GPS locks on to more satellites). If you get impatient you can press the Get Fix button again to stop the process (its label is changed to Stop while a fix is being acquired).

State Context

A State Context allows specification of the continuing state of a software or hardware entity.

The State Edit screen allows configuration of the state and its parameters.

State Name

The name of the state is given at the top of the screen. Clicking on it allows changing to another state type.

Next to the name is a button to show help for the displayed state type and its parameters. Be sure to check the help text if you have trouble with a particular state.

State Parameters

General Parameters
All states have parameters to specify more details about the state.

Text parameters are treated as pattern matches.

Invert Parameter
All states have an invert parameter, which specifies that the context should become active when it would usually be inactive, and vice-versa.

Event Context

An Event Context allows specification of an event which is needed to activate its profile e.g. SMS received, screen has gone off.

Events are a little different to other contexts because they are instantaneous whereas other contexts usually have a duration.

This means that it is nonsensical to specify that e.g. the screen brightness should be set to X for the duration of the event, so Tasker assumes that all settings actions should persist beyond the event.

For more information about specifying events, see the Event Edit screen.

Event Edit

This screen allows configuration of an
Event Context.

Event Name

The name of the event is given at the top of the screen. Clicking on it allows changing to another event type.

In the top right is a button to show help for the displayed event type.

Priority

Only present for relevant events.

Selects the priority at which this event will be detected. An event can be processed by other Tasker Profiles, other installed applications and system processes.

If priority is high, then this profile will be more likely to detect the event before other processes, and vice versa.

Stop Event

Only present for relevant events.

If checked, then once this profile has dealt with the event, other user or system applications will no longer be able to see it.

You can achieve different effects by combining Priority and Stop Event. For instance, if you want to show a Tasker menu when the camera button is pressed, you would set Priority High and check the Stop Flag, because you do not want the camera application to appear afterwards.

Event Parameters

Some events have paramaters to specify more details about the event. To get help on particular parameters, click the question-mark icon at top right.

Text parameters are treated as pattern matches.

If you would like to make more complex comparions (e.g. mathematical expressions), leave the event parameter blank and instead put a condition on the first action of the task you execute with the profile.

Tasks

A task is simply a set of actions which are performed one after the other.

Named / Anonymous Tasks

A task can be given a name. This allows:

When creating a profile, widget or shortcut, often the associated task will consist only of one or two actions which will not be reused. For this case, Tasker allows you to create a task without a name (an Anonymous task).

Task Visibility

Anonymous tasks are only visible when editing the profile that they are associated with.

Named tasks are visible on any screen that allows task editing. Any changes made to the set of tasks in any screen is reflected in all the other screens.

Task Icon

Each task has an associated icon, by default a question mark. The icon is used
  • to represent the task on the home screen when it is used as a widget or shortcut
  • in some popup actions
  • for easier identification of the task within the Tasker UI

Deleting Tasks

Named tasks can only be deleted via the Delete button on the Task Edit screen. Unnamed tasks are deleted automatically when the profile they are part of is deleted, or a named task is selected for that profile.

Named tasks cannot be deleted while a profile still refers to them.

When a task is deleted that is referred to by a previously created named widget or task, the widget will stop working.

Android does not allow Tasker to automatically remove the widget from the Home Screen.

Task Scheduling

When there is a single task waiting to be executed, it's actions are executed one-by-one until finished.

When there are several tasks in the queue at once, it's important to understand how they are handled:

  • only one action from the same action group can be executed at once to prevent interference
  • the task in the queue with the highest priority goes first and blocks lower priority tasks
  • tasks with the same priority take turns executing an action each, starting with the most recent addition to the queue

Task priority, 0 to 10 inclusive, is determined according to whatever causes the task to run.

  • tasks run by profiles have the priority specified in Profile Properties, the default is 5
  • tasks run by widgets or shortcuts can be set in Menu / Prefs / Action, the default is 7
  • tasks run from scene elements have priority one more than the task which showed the scene
  • tasks run from the Test button in the task edit screen have priority 10

A couple of guidelines are:
  • if you want a particular task to always interrupt other tasks that may be executing, give it a high priority
  • if you have a task that lasts for a while, you probably want to give it a low priority so it doesn't block other tasks from being executed.

Action Groups

Actions are divided into groups for scheduling based on how long the action takes to execute and what it interferes with:
  • Speech: Say, Say To File
  • Fix: Get Location
  • Voice: Get Voice
  • Proxy: Display Brightness, Query Action, Photo, Photo Series, Photo Series Time
  • Proxy Scene Enter Key, Menu, Popup, Popup Task Buttons, Variable Query
  • Other Scenes: the name of the scene being shown
  • Normal: all other actions

Wait Actions

Wait and Wait Until are special cases. The rules for handling them are complicated and try to do the 'best thing' dependent on the situation.

Collisions

Sometimes a task needs to be executed of which a copy is already executing. This can happen quite often e.g. when a task widget button is pressed twice quickly, or a task contains a Wait action or shows a dialog.

The way in which a collision is resolved is specified by the user. There are 3 options:

  • the new task is ignored (the default)
  • the existing task is aborted and the new one starts from its first action. The current action of the previous task is finished if it is already being carried out.
  • both tasks run simultaneously

Note that the last option can lead to several copies of a task all running at once.

Behaviour When Device Off

By default, after a few seconds of the screen being off Android will power down the device and thus running tasks will be paused.

In the Task Properties dialog, it can be specified that a task should keep running.

Dialogs
An action that shows some kind of dialog (such as a lock screen, popup, menu) blocks execution of any other action, even one of higher priority, until it is completed.
Wait / Wait Until
These are exceptions. A wait action can be interrupted by another task's action and will resume (if necessary) when the other task's action is finished.

Killing Tasks

If you have a problem with a task that never ends, you can manually end tasks with the Kill button in the Task Edit screen.

Task Edit

This dialog allows editing and deletion of a task.

Action List

The main part of the screen is a list of the actions contained in the currently selected task.
  • Click on an action to edit it
  • Long-click on an action for options
  • Click-and-drag at the right hand side of the action to move it around e.g. to the trash bin

On the right of each action is an icon stipulating whether the action is a setting or not. See here for more information.

Condition and Block Colours

If an action has had a condition set for it, the condition is shown with a red or green bar next to it; green indicates that the condition is currently met (the action will execute), red indicates the opposite. Of course, when the task is executed it could be that it changes things so that the condition is then met.

If an action is within an If / End If block it is displayed indented with a red or green margin. The colours have the same significance as for individual action conditions described above.

If an action is within a For loop it is displayed indented with a grey margin. If the For action has a condition on it which is not met, the margin will be red (because the actions in the loop will never execute, like an If / End If block).

Task Control Row

Directly underneath the action list is a row of buttons with icons.
  • Add Action: add an action on the end of the task.
  • Task Properties: show extended properties for the task.
  • Task Icon button: shows the icon associated with the task. Clicking on it allows changing of the icon.

Bottom Row Buttons

Test Button

Run the task. Be aware that if the Task e.g. loads another activity, you must return to Tasker and press save otherwise all changes made while in the Task Edit screen will be lost.

Tasks run via the Test button have priority 10.

Kill Button
This button in the bottom right will stop all running tasks. It is not displayed if there are no running tasks.

Menu Items

Action Labels
Toggle display of action labels (which are specified in the Action Edit screen).
Param Names
Toggle display of the name of each action parameter.
Icons
Toggle display of the setting/action indicator icon for each action.

Action Edit

This screen allows configuration of a single action in a Task.

General

At top left is the name of the action. Tapping on this allows it to be changed.

Bottom-right is a help button. Please be sure to read the action help of every action before you use it for the first time, there may be e.g. device specific restrictions you should know about.

Action Parameters

A parameter gives extra detail about how the action is to be carried out.
Text Parameters
Numeric Slider Parameters
Clicking the arrows icon next to numeric sliders allows you to specify the number textually or use a variable for the parameter instead, if the value will not be known until the action is actually executed.
If (Condition) Parameter
(most actions)

Allows specification of a condition which must match if this action is to execute.

Please see the section on Flow Control for more information.

Continue Task After Error Parameter
(selected actions only)

By default, if an action fails with an error (e.g. the user specified to delete a file that doesn't exist) Tasker will stop the task immediately and the remaining actions will never be executed.

This parameter specifies that the task should continue even if this action fails.

In addition, if it's checked, errors will be logged in the system log as diagnostics instead of errors and error popups will be surpressed.

Label Parameter
(all actions)

A label for the action which is shown on the Task Edit screen. This parameter could also be used to add comments to actions to help understand how the task works.

Labels are also used with Goto actions to jump from one part of the task to another.

Scenes

Introduction

A scene is a graphical user-interface consisting of a collection of elements to which tasks can be attached to be run when the user interacts with them e.g. by tapping them.

Tasker uses scenes for things like popup dialogs, menus and getting input from the user but scenes can actually be displayed by the user whenever desired, meaning they can be used for things like creating simple user-designed applications or showing extra controls over the top of (selected) existing applications.

Scenes are completely user-customisable via a drag-and-drop graphical editor.

Displaying Scenes

Actions: Enter Key, Lock, Menu, Popup, Popup Task Buttons and Variable Query

These actions use a built-in scene with the same name as their action. After creating a task with such an action, the associated scene can be found under the Scenes tab on the main Tasker screen. That scene can be edited so that e.g. all Popup actions have the same style because they all use the same scene.

The parameters specified in the action are applied to the scene before it is show. For instance, if the scene has a Title element it will be set to the title specified in the action and the scene resized appropriately.

It might be desirable to have a different style for e.g. some Popup actions, in which case:

  1. clone the built-in scene long-clicking on it in the Scenes tab
  2. edit the clone to change the contents
  3. in a Popup action, specify that the cloned scene should be used by clicking on the Layout parameter in the action edit screen.

Scene Category Actions: Create Scene, Show Scene, Hide Scene, Destroy Scene

These allow a completely free hand over when a scene should be displayed and it's life-cycle. They all act on scenes pre-designed in the Scenes tab.

Usually, only Show Scene and Destroy Scene will be used, however sometimes it's useful for a scene to be created but not visible to the user:

  • by hiding a scene instead of completely destroying it, the settings of the elements are retained for next time it is shown
  • the values of the elements in the scene can be changed to track certain events so that the scene can be immediately displayed when required without any configuration

Scene Elements

Each scene is comprised of a number of elements.

An element has three main components:

Geometry

It's size and position on the screen. An element's geometry is specified in the scene editor.

Content

How it looks on the screen.

Specified under the UI tab in the element editor. Some elements also have a Background tab. A Menu element has an additional Items tab.

Event Tasks

What should happen when the user interacts with the element.

Specified under the right-most tabs after clicking on the element in the element editor. There are different events depending on the type of element. For instance, a Button has tap and long-tap events while a Slider has a value-set event.

Event tasks are run at priority one higher than the task which displayed the scene

Local variables set by event tasks are visible to all tasks in the same scene.

Scene Element Actions

In the Scenes action category, there are several actions for setting the properties of scene elements. You can use these for a wide variety of purposes e.g.
  • when a slider value is set, change the zoom of an associated map element
  • set the size of an element depending on current light level
  • animate elements around a scene

Note that actions that affect scene elements can only be used when the scene has already been created (via Create Scene or Show Scene). The scene does not have to be visible.

Scene Edit

The scene editor is used for designing custom scenes.

The editor consists of three areas:

Display Area

The main part of the editor, where the position and size of elements are arranged. The display area has two modes dependent on the setting of the magnifying glass icon in the corner.

Preview Mode

This mode shows the scene as it will appear when displayed.
  • CLick-and-drag on the edge of the scene to resize it

Editing Mode

This mode is zoomed to make editing easier.
  • Long-click on an empty area to create a new element positioned there
  • Long-click on an element to get options for the element
  • Click on an element to edit it.
  • Click-and-drag on the centre of an element to move it
  • Click-and-drag on the edge of an element to resize it

When moving and resizing, the sides of elements are snapped to a grid to make alignment easier. The grid size is unique to each scene and can be changed via Menu / Grid Size.

Tool Bar

Undo

Allows undo of all operations, up to 20 steps in the past.

New Element

Create a new element in the middle of the scene. Useful if the scene is already cluttered with a lot of elements so there is no free space.

Touch Mode

There are three touch modes which decide the effect of taps on the display area. Normal Mode is described above. Move Mode is intended to make it easier to reposition elements. Resize mode is for making resizing easier.

Menu Options

Background Colour

A complex background can be set by long-tapping an element and specifying it as the
background element. If a uniform colour is sufficient, it can also be specified with this menu option.

However, there is a special case where it's a good idea to specify a background colour even if you already have a background element. A scene is resized to fit the container into which it's placed, but in some cases (e.g. when it is shown as a full screen activity) there will be margins left on one side of the container because the aspect ration of the scene (the relative size of its width and height) of a scene is never changed. In such a case, the margins are coloured with the background colour specified here.

Element Long-Click Options

Set Background

An element which is set as the scene background is resized to always fill the whole scene and interferes less with selection of other elements. To reverse this, long-tap on it and select Set Foreground.

Pin

When an element is positioned satisfactorily, it can be pinned to make it easier to select and manipulate other elements. To reverse this, long-tap on it and select Unpin.

Set Depth

Each element has a particular depth which is unique to it. Deeper elements are obscured by shallower elements which overlap them.

Scene Element: Button

About

A standard Android button enhanced to allow display of an icon, text or both.

Parameter: Position

If both a Label and Icon are specified, the Position parameter refers to the position of the Label. The Icon is then placed opposite the Label.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Doodle

About

A Doodle is an image created by the user with a simple finger-painting screen.

Click the Doodle parameter to edit the doodle.

Doodles are stored on external storage in the directory /sdcard/Tasker/cache/doodles in case they are masterpieces which demand publishing.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Image

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Oval / Rectangle

About

Shape elements are intended mostly for decoration but can also be used as invisible 'launchpads' for e.g. stroke events.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Map

About

A Map element is a view onto the same kind of map window used by Google Maps but is much more automateable than the standalone app.

It's only possible to have one Map element per scene and Map elements cannot appear in Overlay scenes.

Related Actions

Events

See Also

The Element Editor screen.

Scene Element: Menu

About

A menu displays a variable selection of items and can have a separate action, text and icon defined for each item in the list.

Parameter: Source

Items can either be filled manually or from a variable array. In the case of an array, the list shows all the items starting at the first index; %var(1) %var(2) etc.

In the case of manual specification, click on the Items tab in the element editor to specify the items.

Parameter: Selection Mode

There are three selection modes:
  • single: tapping an item deselects any other item selected
  • multi: several items can be selected at the same time
  • none: tapping an item never selects it

Selected items are highlighted. There are two ways to find out the selected items:

  • assign a task under the Item Tap element event tab. Every time an item is tapped, the selected items are available in the local variable %select_indices
  • query the selected items at any time using the action Element Get Value

Parameter: Item Layout

Specifies how each item within the list will be displayed. Each item has exactly the same layout. To change the layout, click on it. Each Menu element has it's own unique item layout.

There are two pre-defined layouts you can choose from (click the magnifying glass icon). 'Icon and Text' is the default.

Events

Related Actions

Scene Element: Slider

About

A standard Android 'seek bar' enhanced to allow specification of the thumb icon and display indicators for the min, max and current values.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Text

About

Displays non-editable text for labels etc.

Parameter: Position

Where to place the text within its box

Parameter: Text Width Scale

A horizontal scaling factor to squash up (negative values) or stretch (positive values) the text.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: TextEdit

About

A standard Android box for text entry.

TextEdit elements cannot appear in Overlay scenes.

Parameter: Position

Where to place the text within its box

Parameter: Text Width Scale

Horizontal scaling factor to squash up (negative values) or stretch (positive values) the text.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element: Web

About

A Web element is like a browser window.

Events

Related Actions

See Also

The Element Editor screen.

Scene Element Edit

Allows configuration of the properties of a scene element. The different types of property are divided into tabs.

Not all elements have all tabs.

UI

For the most part, configures the visual style of the element.

Items

Only relevant to Menu elements.

Each row configures an item in the menu. Starting from the left, the controls are:

  • selection checkbox
    this is only present when Selection Mode is set to Single or Multi. It stipulates whether the item will be shown as selected when the menu is displayed.
  • icon button
    the icon to show for the item. If you don't want to show an icon, hide the icon element in the Layout parameter in the UI tab
  • label text
    the label to show for the item. If you don't want to show a label, hide the label element in the Layout parameter in the UI tab
  • action button
    an action to run when the item is tapped
  • trash can
    used to delete the item

To add an item, click the plus button at the bottom of the screen.

Background

Configures a rectangle shape to be used as the background for the element when it is displayed. The background will be stretched to fit the size of the element.

If you want to use an image for a background, create a separate Image element and place it underneath.

Event Tabs

Event tabs stipulate what Tasker should do when the user interacts with the element in some way. Most consist only of a task to specify but some allow a filter specification so that the task only runs if the event matches the filter.

To help the task to decide what to do with the event and to allow a single task to handle many different events if desired, Tasker sets certain local variables which give specific information about it. The variables are easily accessible by clicking the usual variable tag icon in any action in the task.

The following variables are available in all such tasks:

  • %scene_name
    the name of the scene containing the element
  • %element_name
    the name of the element that the user interacted with (e.g. Button1)
  • %element_type
    the type of element (e.g. Button)
  • %event_type
    the name of the event (e.g. Tap)

Text Changed

Elements: TextEdit

This event is triggered whenever the text changes e.g. because a letter key has been pressed while the element had focus.

  • %new_val
    the new text
  • %old_val
    the old text

Tap, Long Tap

Elements: Button, Doodle, Image, Map, Oval, Rectangle, Text

In a Map element, the following variables are available:

  • %coord
    the latitute,longitude of the tapped location on the map
  • %label
    the label of the tapped GeoMarker (if any). You can add GeoMarkers to a Map element with the action Scene / Element Add GeoMarker

Value Selected

Elements: Slider
  • %new_val
    the new value of the element (e.g. 50)
  • %old_val
    the last selected value (e.g. 43)

Item Tap, Item Long Tap

Elements: Menu
  • %select_indices
    a comma-separated list of currently selected items in the list (e.g. 3,4)
  • %select_labels
    a comma-separated list of the labels of currently selected items in the list (e.g. Blue,Yellow)
  • %tap_index
    the index of the item that was tapped to cause this event (e.g. 3)
  • %tap_label
    the label of the item that was tapped to cause this event (e.g. Blue)

Stroke

Elements: Doodle, Image, Oval, Rectangle, Text

A stroke has two filter parameters.

  • Direction
    the direction from the start point of the stroke to the end point
  • Length
    minimum distance in (approximate) pixels from the start point of the stroke to the end point

If either of these parameters don't match the event, the task will not run.

  • %stroke_dir
    Direction, as described above
  • %stroke_len
    Length, as described above

Link Tap

Elements: WebView

A Link Tap has two filter parameters:

  • %url
    URL as described above

Page Loaded

Elements: WebView
  • %url
    the URL of the page (e.g. http://i.hate.fruit/except/mangos.html)

Task / Shortcut Widgets

The standard way of running a Tasker task is by attaching it to a profile which performs it when the profile becomes active. However, tasks can be directly assigned to icons on the home screen called Widgets or Shortcuts.

Standard Widgets / Shortcuts

These consist of an icon (the Task icon) with a label (the Task name) underneath, and look identical to the normal application icons in the home screen.

Clicking on the icon runs the associated Task.

Task Timer Widgets

This type consists of an icon and label, like the standard widgets, but also has a countdown timer display which counts down Days, Hours, Minutes and Seconds.

When the timer expires (reaches 0) the associated Task is run.

Tapping on the icon of the widget shows a configuration screen where the timer can be configured.

Tapping on the timer section of the widget will pause, restart or reset the timer, depending on its current state.

Note that the timer updates more rarely when it is still a long way from expiry in order to minimize power usage.

Creating a Widget / Shortcut

  1. Click and hold in an empty space on the Android home screen, until a dialog appears.
  2. Select Widgets or Shortcuts
  3. Select Task or Task Timer (Widgets only)
  4. Pick an existing task or create a new one. When creating a new one, if you do not expect to change the function of the widget/shortcut select One-Time to avoid it cluttering your list of tasks.
  5. Use the Configuration Screen to configure what should happen when the icon is clicked (or the timer expires, in the case of a Task Timer widget). Take care to select an appropriate name and icon for the task, as these will appear on the home screen.

Changing a Widget / Shortcut

The function of widgets or shortcuts created from one-time tasks cannot be changed, it must be deleted and recreated.

On the other hand, if you associate a normal named task with a widget or shortcut then when the task is changed (via the Task Edit screen) the function of the widget or shortcut also changes.

There are also some actions which will change the appearance of any widget:

  • Tasker/Change Icon Set: changes the icon of a set of widgets to a different style.
  • Tasker/Set Widget Icon: changes the icon of a particular widget
  • Tasker/Set Widget Label: changes the label of a particular widget
The latter two you could use to visually show the status of something e.g. WiFi.

Deleting a Widget / Shortcut

Click and hold on the icon in the Android home screen until the dustbin icon appears. Drag the widget or shortcut icon to the dustbin icon and release.

Differences Between Widgets and Shortcuts

Advantages of Shortcuts
  • they can be created in some places that widgets can't e.g. in home screen folders
  • their layout probably better matches the default launcher layout
  • long shortcut labels will scroll when selected in the default launcher
  • they use slightly fewer system resources, though it's probably not noticeable
Advantages of Widgets
  • they can use image files from SD for their icon
  • their icon and label can be dynamically changed after creation via the Set Widget Icon and Set Widget Label actions.
  • timer widgets are possible
  • they can be created without a label
So a shortcut should be used unless the extra configuration possibilities of a widget are necessary.

General

  • you can create as many Tasker widgets and shortcuts as you like. You can even have several Timer widgets running at the same time.
  • Timer Task widgets continue to update even when the screen is off.

Beginner Mode

When Tasker first starts, Beginner Mode is enabled.

In Beginner Mode, Tasker attempts to simplify things for inexperienced users, mostly by UI elements which are unlikely to be needed by inexperienced users.

Beginner Mode can be disabled by unchecking the option:

Menu / Prefs / UI / Beginner Mode

Some of the changes made in Beginner Mode are:

  • main screen, Variables tab removed
  • main screen, export options removed
  • main screen, project tab not accessible
  • task edit screen, task properties icon removed
  • action edit screen, Label, Continue On Error parameters removed
  • prefs screen, many options removed

In the userguide, when references are found to things which do not appear on the screen. It's worth disabling Beginner Mode to see if that's the problem.

CPU Control


Note: CPU control can damage your hardware e.g. by the CPU overheating. As for all Tasker functions, you use it at your own risk!


General

On a rooted device (only) Tasker is able to control the CPU frequency of an Android device to some extent. This is usually done either to save battery or make the device more responsive depending on the circumstances.

The relevant control action is CPU in the Misc category. You can monitor the current state with the variables %CPUFREQ and %CPUGOV.

There are two aspects which can be controlled, the Frequency Range and the CPU Governor. You will need to experiment with combinations of these to achieve the best results.

Frequency Range

You can set the minimum and maximum frequency which the CPU is allowed to run at. Only certain frequencies are valid, depending on the CPU (click on the magnifying glass button to select a valid value).

The maximum frequency is probably initially set lower than the maximum frequency that the CPU can actually handle. If that is the case, you should be very cautious about setting it higher. Tasker will warn you the first time you try to do configure an action to do that, assuming you have not been using other apps to change the maximum frequency limit.

CPU Governor

The active governor decides what the CPU frequency should be set to at a particular time, within the frequency range you have set. Each has it's own unique strategy. Here are the most common governors:

  • Performance
    keeps the CPU frequency always at the maximum. Most power-hungry, most responsive.

  • Powersave
    keeps the CPU frequency always at the minimum. Least power-hungry, least responsive.

  • Ondemand
    when the CPU is needed, immediately sets it to maximum frequency. Slowly reduces the frequency back down to the minimum as time passes. Responsive, reasonable power usage.

  • Interactive
    like Ondemand, but more responsive with slightly more battery usage.

  • Conservative
    when the CPU load is needed, slowly increases the frequency to maximum. When the CPU is no longer needed, immediately drops back to the minimum. Less power-usage than Ondemand or Interactive, less responsive.

Not all governors are available on all ROM versions. Your device may also have a governor not described here. You can still set that governor with Tasker.

CPU Action Not Available

Common problems are:
  • root not recognized
    Tasker decides that a device is rooted if /system/app/Superuser.apk is present and su is present in one of the directories of $PATH
  • no available frequencies
    Tasker needs to know what frequencies it can set the CPU to. It looks for the files /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_frequencies, /sys/devices/system/cpu/cpuX/cpufreq/stats/time_in_state and /system/etc/scaling_available_frequencies (in that order). If you know what your CPU frequencies are, you could write them (space-separated, in numerical order) to the first (any number of CPUs) or last (1 CPU only) of those files.

Widget / Shortcut Configuration

This screen allows selection and configuration of a task which will be performed when an icon is clicked on the Android home screen or a timer elapses.

Please read about Task Widgets / Shortcuts before venturing further on this screen.

The layout of the Configuration screen is nearly identical to that of the Task Edit screen. The differences are as follows:

  • there are no icons for renaming or deleting the task

  • at the bottom of the Widget Configure screen is a launcher button. This will take the icon and text of a selected application as the icon and name of a new macro. You can then change the details as you wish e.g. add an action before loading, change the icon.

    Tasks created with this button are One-Time only: you can't access them again after the widget is created.

  • when creating a Task Timer widget, you'll find a different button in the bottom right which allows initialization of the timer. You can use this, or wait till the widget is created and then click on the icon to configure the timer.

Flow Control

Overview

Task flow control is based on the following Tasker elements:
  • variable values
  • conditions on individual actions
  • If / Else / Endif actions for conditional grouping of following actions
  • For / End For to do a set of actions once for each of a set of elements
  • Goto action (jumping around within a task).
  • Perform Task action (calling other tasks as subroutines)
  • Stop action (terminate task immediately)

On the Wiki there is a detailed example of processing a file's content [External Link].

Tip: if you accidentally create a task that never ends when experimenting with loops, use the Kill button in the Task Edit screen to end it manually.

Conditions
Every action can have a condition associated with it (specify this in the Action Edit screen). If the condition does not match, the action will be skipped.

A condition consists of an operator ('equals' etc) and two parameters. The possible operators are:

  • Matches (~)
    The right parameter is a pattern which the left parameter is
    matched against.
  • Not Matches (!~)
    As above, but the match must fail for the action to be executed.
  • Less Than (<)
    Both parameters (after variables are substitued) must be numbers or mathematical expressions and the first must be less than the second e.g. 3 < 6. See Maths for more info.
  • Greater Than (>)
    As above, but the first parameter must evaluate to more than the second.
  • Equals (=)
    As above, but the two parameters must be numerically equal.
  • Not Equals (!=)
    As above, but the two parameters must be not numerically equal.
  • Is/Isn't Set
    Whether the specified variable has a value or not.

Expressions which are not mathematically valid e.g. I Am The Walrus > 5 give a warning and evaluate to false when used with a mathematical operator.

Foreach Loop

Goal: perform a set of actions for each of apple, pear and banana.

1. For
%item
apple,pear,banana
Loop once for each of apple, pear and banana
2.   Action One
Example: Flash %item
3.   Action Two
...
4. End For
Return to action 1 if we havn't done all the items yet

Result: Action One and Action Two are performed three times. The first time, the variable %item is set to apple, the second time pear and the last time banana.

You can insert a Goto action in the loop with either Top of Loop (meaning continue, skip to the next item straight away) or End of Loop (meaning break, stop without doing any more items) specified.

In adition to simple text, the For action accepts any comma-separated combination of these Items:

A common case is to use %arr(), which performs a loop for each element in the array %arr.

For Loop

Goal: perform a set of actions for each of a range of numbers in turn.

Use the Foreach Loop as described above, with the Items parameter being a range specification e.g. 4:0, 100, 0:8:2 (= 4,3,2,1,0,100,0,2,4,6,8).

Until Loop

Goal: perform a Task X until some condition is met (at least once)

1. Action One
...
2. Action Two
...
3. Goto
1
If %QTIME < 20
Return to action 1 if runtime < 20

Result: Action One and Action Two are performed until %QTIME contains the value 20 or more i.e. until the task has been running for 20 seconds.

While Loop

Goal: perform a Task X while some condition is met.

1. Stop

If %fruit Not Matches Apple
Stop task if it's not crunchy, otherwise go to next action
2. Action One
...
3. Action Two
...
4. Goto
1
Go back and see if we're still crunchy

Result: Action One and Action Two are performed while %fruit contains the value Apple.

Counter Loop

Goal: perform a Task X a set number of times.

1. Variable Set
%count, 0
Initialize the counter
2. Action One
Label: LoopStart
...
3. Action Two
...
4. Variable Add
%count, 1
Add one to %count
5. Goto
LoopStart
If %count < 10
Return to action 2 if count < 10

Result: after initialization of %count to 0, the task loops around the actions from 2-5 until %count reaches 10, at which point the condition on the Goto fails and the end of the task is reached.

Note that we used a Goto to a labelled action this time. In all but the very simplest tasks it's better to use a label rather than a number. It's easier to work out what's happening and if you insert or delete actions before the loop starts, the Goto will still jump to the right place.

An alternative way to do this loop is to use a For action specified as 0:10.

If / Then / Else Condition

Goal: perform certain Tasks if conditions are met, otherwise perform a different task.

1. If
%fruit ~ Apple
~ is short for 'matches'
2.   Action One ...
3.   Action Two
...
4. Else If
%fruit ~ Pear
an Else action with a condition
5.   Action Three ...
6. Else
7.   Action Four
...

Result: actions One and Two are executed if %fruit matches Apple, Action Three is executed if %fruit matches Pear, otherwise Action Four is executed.

Notes:

  • you can have as many Else Ifs in a condition as you like
  • if your condition is in the middle of a more complicated task, you need to tell Tasker where the condition ends with an End If action

Subroutines

To call another task, use the Perform Task action. To use it as a subroutine, you just need to ensure that the priority of the calling task is less than the priority of the called task (more info: scheduling).

The parent can optionally pass values to the child and receive a result back:

Parent Task

1.   Perform Task
Child,
Priority, 10
%par1, 5,
Result Value Variable, %result
pass 5 to the child, expect a result in %result
2.   Variable Flash
Result: %result
what did we get back ?

Child Task

1.   Variable Set
%newval, %par1 + 1, Do Maths
add one to the value that was passed
1.   Return
%newval
set %result in the parent to the value of %newval in the child

Result: the parent flashes 6

Notes:

  • changes made to %par1 and %par2 in the child task are not reflected by their changing in the parent task
  • receiving a return value is optional for the parent, even if the child tries to give it one
  • unlike Return statements in most computer languages, Tasker's does not necessarily stop the child task, so if the child and parent have the same priority they can both run together and the child return several results over time.

Encryption


Note: encryption functions are not available on the Android Market version of Tasker due to US export restrictions.


Tasker has the ability to encrypt and decrypt files. The relevant actions are in the Encryption action category.

Since decryption can be automated, you have the possibility to keep data files encrypted outside of certain times, locations, applications etc.

Warning: make backups of your files while setting up encryption until you understand how the system works and are sure the encryption/decryption process does not cause any corruption.

Tip: Tasker does not give progress reports while it's doing encryption, if you want to know when an long decryption operation is finished, just put a Vibrate action or similar after the Encrypt/Decrypt action.

Keys

Tasker uses a system of named keys. All of the encryption actions can specify a key name so that you can use different keys with different files (if desired).

If no key name is specified, default is used.

Once a passphrase for a key is entered, the ciphers it generated are stored in memory until explicitly deleted. The deletion might be specified after an Encrypt/ Decrypt File action, or explicitly with the Clear Key action.

Setting Up Encryption

General Preferences

First thing to do is check whether the encryption preferences for Encryption Iterations and Encryption Algorithm are as you wish. Once you start encryping things, it's time consuming to start again with new encryption preferences.

The preferences can be found at Menu / Prefs / Action. Be sure to have a look at the help text for each item.

Initial Encryption
To start with, you probably want to encrypt some files which are in a particular directory, which you can then decrypt as they are needed.

To do that, create a task called Encrypt or similar and add one or more Encrypt File or Encrypt Dir actions to it.

By default, the key is cleared once the file is encrypted, so click 'Leave Key' for all but the last action, otherwise you'll have to enter your passphrase for each file.

Next, create a Tasker shortcut on the home screen, using the Encrypt task. Tap the widget to encrypt your files. Notice how you are only asked for the passphrase for the first one, because it is stored until cleared.

The encrypted files will all receive an extension .tec and the original files are deleted.

Decryption

Once you have a set of encrypted files, you need to setup the contexts in which they will be decrypted.

Create another task called Decrypt or similar, and add Decrypt actions to it to match the encrypt actions you setup previously.

Don't click Clear Key, otherwise you'll have to enter your passphrase for every file (and at the start of encryption).

Now you can use your Encrypt and Decrypt tasks whenever you like. For instance, you could create a profile with a Location Context and run your Decrypt task when entering the location (assign Decrypt as the Enter task) and your Encrypt task when leaving the location (assign Encrypt as the Exit task).

Important: when you use the Decrypt action, it recreates the original file from the encrypted copy, but does not delete the encrypted version.

When you re-encrypt the file, if it has not changed it is simply deleted since we already have an encrypted copy. If it has changed, it is re-encrypted.

The purpose of this method of operation is to:

  • avoid the lengthy encryption process when unnecessary
  • prevent accidental double-encryption (encrypting the same file twice)

Enter Key Action

It's not always convenient to enter the key at the point at which de- or encryption takes place. This action allows you to specify the passphrase for a key at a different point.

If you don't wish to double-enter a key when encrypting, you can also use this action before an Encrypt action and not select Confirm.

Set Key Action

To allow full-automation of en/decryption, the passphrase for a key can also be set without user interaction. However, this is much less secure tham Enter Key because:
  • the passphrase (as part of the action) is stored in clear text in device memory and could be read by the root user if the device OS is compromised
  • although the passphrase is itself encrypted when a backup is made to SD, the parameters for that encryption can be recovered from the java code in the Tasker apk file

Security

Algorithm
Tasker uses symmetric encryption, meaning the same passphrase is used both to encrypt and decrypt the data.

The default algorithm is "PBEWithMD5And128BitAES-CBC-OpenSSL". PBE stands for password-based encryption, see RFC 2898.

A salt is combined with the passphrase several hundreds of times using the MD5 algorithm to produce a key which is used for the 128-bit (default setting) AES algorithm.

The number of iterations and algorithm can be set in Menu / Prefs / Action.

Pass Phrases
The longer the passphrase, the more secure the data. Minimally 8 characters of mixed alphabetic, numeric and punctuation characters is recommended.
Clearing Keys
While a key's ciphers are in memory, anyone can use the key for decryption or encryption if your device is lost or stolen, so it may be wise to setup a Clear Key action e.g. when the device is turned off (see Screen Off in the Event Context) or at a particular time (Time Context), depending on what you are using the encryption for.
Manually Encrypting/Decrypting
You can use Tasker's file browser (action Browse Files) to encrypt/decrypt files directly, via a long-click on the file.

Gestures & Shaking

General

Gestures are physical movements of the phone in space, which you first record by creating a new Event of type Gesture (in the Misc category).

When you later redo the gesture while using your device, Tasker will carry out the corresponding task(s) you have attached to its profile.

Like normal events, gestures are restricted by other contexts. For example, if you define a profile with a Gesture (Event) and Application context, the gesture will only be recognized while using that particular application.

Note: it might be a good idea to disable Tasker before setting up new gestures, as otherwise you are likely to trigger previously defined ones.

Recording A Gesture

Gesture Points
First off, it's important to know that Tasker only records the particular points (which we'll call inflection points) of a gesture that you tell it to. For example, recording a gesture involving tilting the phone to the left and back you would record three inflection points: the start, the tilted left position, and the end (which is the same as the start in this case).

You can record as many points as you like, but in general it's best to record only the points where the phone is not moving.

Recognized Movements
Tasker will only recognize changes in the angle of the phone i.e. tilting to left or right, backwards or forwards, or rotating vertically. Imagine three poles going through the device in the three dimensions.

Moving the phone backwards or forwards, up or down or side to side cannot be recognized.

Procedure
  1. create a new Gesture Event and give it a name (so you can differentiate between different gestures).
  2. put the phone in the position where you want the gesture to start and press-and-hold the Call, Camera, Menu, Search or Volume hardware buttons to record the point. The device will buzz.
  3. move to another (preferably not-moving) point on the path of your gesture, and press the button again (not a long press). The device will buzz.
  4. on the final inflection point, press-and-hold the button to mark the end of the gesture. The device will buzz again and the "Recorded." message should now flash up.
  5. Press Done, and add a Vibrate action so you can hear when your pattern matches when testing it.

Activation

Calibration
Before trying to match a pattern, you probably need to calibrate the hardware in your device. Go to Menu / Prefs / Monitor / Gestures. Press the Calibrate button and tilt your phone around in all directions.

Tasker now has some idea what kind of values the accelerometer in your phone produces.

You only need to calibrate once.

Matching

Now exit Tasker and move your device through the points you previously defined when recording. You should hear the device vibrate when it reaches the final recorded point.

If not, try playing with the values in the Gesture Settings screen. For instance, you could try raising the Match Radius (but be careful not to raise it too much or you'll get a lot of matches by mistake).

Shaking

Tasker's gesture system is not really designed around rapid movements of the phone like shaking. A separate Shake event is planned.

Power Usage

Tasker does its best to limit power usage of gesture monitoring.
  • monitoring for gestures only takes place when all the other contexts in a profile are already active (and so the gesture might have a chance of activating the profile). For example, if you combine an Application and Gesture (Event) context, gesture monitoring will only take place while using that particular application.
  • Gesture monitoring is always turned off while the screen is off (the device is sleeping).
  • updates from the accelerometer are at the minumum rate until the start of a gesture is detected.

Icons

Tasker can use four categories of icons:
Application, Built-In, Ipack, User-Installed.

In some places it's also possible to use any image stored on local media as an icon.

Application Icons

These are taken from applications installed on the device.

Minor note: if the icon of the application changes, an update of previously created widgets/shortcuts can be forced by creating a single widget with the new icon and then rebooting.

Built-In Icons

These come with Tasker and are kept in the device's memory.

Ipack Icon Sets

Ipack is a free, open format for sharing of icon sets between Android applications. Ipack icon sets can be either installed from Android Market or from the Ipack website.

When setting an icon, you will notice an item labelled Download More Icons. Clicking on it will use the appropriate source depending on which version of Tasker you have.

User-Installed Icons

You can also install your own icons directly into Tasker's icon directory /sdcard/Tasker/.icn/. Make sure the icons are in a subdirectory. The subdirectory should also only be one level deep (no subsubdirectories).

Icons must be in PNG format.

Example: a two-icon set called Christmas would have the two files in these locations:

/sdcard/Tasker/.icn/Christmas/santa.png
/sdcard/Tasker/.icn/Christmas/snowman.png

Location Without Tears

This is an overview guide to choosing a method for fixing your location with Tasker. At the end are some advanced power-saving strategies.

Power / Accuracy Comparison

Method Power Usage Acc Need Net Need Wifi
State: Cell Near * *
Location: Net ** ** Y
Location: Net & Wifi*** */***** Y Y
State: Wifi Near **** ***** Y
Location: GPS ***** ***** Y

More stars mean higher power usage or higher accuracy (Acc).

Detail Comparison

State: Cell Near

Setup
Create a state context, select Cell Near. Click Update and walk around a bit to scan for cell towers nearby.
About
Uses information about the cell towers the phone uses for telephony to record and match a location.

When the display is off, frequency of checks is controlled by Menu / Prefs / Monitor / Display Off All Checks.

Plus / Minus
  • (+) virtually no extra power on top of power needed for normal phone service
  • (+) when the display is on, context updates as soon as the tower is visible
  • (+) when the display is off, only one check period is needed to determine context exit
  • (-) highly inaccurate
  • (-) must be physically at the location in order to record it

Location: Net

Setup
Create a location context, and deselect GPS.
About

Net location accuracy varies greatly. It's very important that you create a large radius around the spot you wish to detect.

Frequency of checks is controlled by Menu / Prefs / Monitor / Network Location Check (screen on) and Menu / Prefs / Monitor / Display Off All Checks.

More Info.
Plus / Minus
  • (+) extremely low (extra) power (IF network is available anyway)
  • (-) requires network and phone service
  • (-) highly inaccurate and variable fixes

Location: Net & Wifi

Setup
Create a location context and deselect GPS. Make sure your device's Wifi is turned on when you want a more accurate location fix.
About

Net location can be assisted by nearby access points when Wifi is turned on (Google has a map of APs for many areas).

Turn Wifi off when not needed to conserve power e.g. use a Time context to turn wifi off at night.

Plus / Minus
  • (+) very good accuracy in built-up areas for relatively low power usage
  • (-) must be physically at the location in order to record it

State: Wifi Near

Setup
Create a State context, click Wifi Near, fill in the SSID of an Access Point (AP) with the best signal near where you want to identify.
About
Wifi Near does regular Wifi Scans and will activate when it recognizes an AP you have configured is nearby. Note: you don't have to connect to the AP. You could configure e.g. the neighbours AP if the signal is strong enough.

Check the Wifi Toggle box if you don't want wifi on all the time. It will then be toggled when Tasker needs to do a scan.

Plus / Minus
  • (+) very good accuracy and reliability
  • (+) less power than GPS
  • (+) works indoors too
  • (-) need an AP nearby
Location: GPS
Setup
Create a location context, and deselect Net.
About

Frequency of GPS checks is controlled by Menu / Prefs / Monitor / GPS Check (screen on) and Menu / Prefs / Monitor / Display Off All Checks. Higher frequencies mean more battery usage but that location changes will be noticed more quickly.

When indoors, GPS will try a long time to get a signal, using a lot of battery. Adjust it at Menu / Prefs / Monitor / GPS Timeout. Make the timeout as low as you can until you start losing effectiveness.

More Info.
Plus / Minus
  • (+) highly accurate in the open air
  • (-) functions very poorly or not at all indoors. A bad side effect is that if you enter a building e.g. office while between the check times, it may never detect your new location until you leave.
  • (-) extreme power usage
  • (-) needs network to get a first fix

Advanced Strategies

Multiple Contexts
Tasker does not check high-power contexts until all lower-power contexts in the same profile are active. You can use this to reduce power consumption. For instance, if you use the Wifi Near state to detect coming home, you could add a Location: Net context to the same profile, so that wifi scanning will only take place when you are in the right neighbourhood.
Location Control
Disable GPS/Net location when they're not needed by creating a separate profile with e.g. a Time context which disables GPS during the night.

This works because Location contexts assume you are in the same location until there is a fix which says otherwise.

Pattern Matching

What's Pattern Matching ?

With Pattern Matching, you specify a pattern which tells Tasker what text you wish to match. For instance, if you want to match any telephone number starting with 0135, you can specify the match 0135*. * is a special character which matches any number of any character.

Where's It Used ?

Matching is used in the following places:
  • in the If condition of an action, when the ~ (match) or !~ (not match) operators are specified.
  • in text paremeters of State and Event contexts
  • some other places :-)

Matching Rules

  • if a pattern is left blank, it will match against anything
  • if it is not blank it must match the whole target text
  • / means 'or', it divides up multiple possible matches
  • a * will match any number of any character. It's not possible to specifically match a * character.
  • a + will match one or more of any character. It's not possible to specifically match a + character.
  • matching is case-insensitive (magic will match with MagiC) unless the pattern contains an upper-case letter e.g. Magic* will not match against magically, but it will match against Magic Roundabout
  • a ! at the very start of a match means not e.g. !*Magic*/*Yellow* matches anything not containing the words Magic or Yellow
  • it is not possible to specifically match a ! character at the start of a target (but you could use *!

Examples

  • help matches help but not helper.
  • help* matches helper
  • *the* matches the (anywhere)
  • 123+ matches 123 and minimally one more character
  • + matches anything with at least one character (non-empty)
  • the*way matches the other way and the first way, amongst others
  • Help/*shell matchs Help or anything ending with shell, case-sensitively

Caller Matching

Caller matching (some events and states e.g. Incoming Call) is handled slightly differently.
  • C:ANY matches the telephone number of any contact
  • C:FAV matches the telephone number of any favourite (starred) contact
  • Otherwise: otherwise a match is attempted using the general matching rules against both the caller phone number and the associated contact's name (if there is one).

Examples:

  • !C:ANY matches a number not belonging to a contact
  • 077*/Geoff* matches a number starting with 077 or belonging to a contact whose names starts with Geoff
  • C:FAV/0123456789
  • matches any favourite contact or the telephone number 0123456789

Maths

Where Is Maths Used ?

  • When you do Variable Set and click the Do Maths checkbox
  • With the If action, if you select a mathematical comparison like < or =
  • With individual action conditions when a mathematical comparison is selected

What's Available

Operators

  • + - * / - the basic operators
  • % - modulus
  • ^ - power
Constants
  • E - the base of the natural logarithms
  • EUL - Euler's Constant
  • LN2 - log of 2 base e
  • LN10 - log of 10 base e
  • LOG2E - log of e base 2
  • LOG10E - log of e base 10
  • PHI - the golden ratio
  • PI - the ratio of the circumference of a circle to its diameter
Functions
Functions take their argument in parenthesis e.g. sin(90)
  • abs - absolute value
  • acos - arc cosine; the returned angle is in the range 0.0 through pi
  • asin - arc sine; the returned angle is in the range -pi/2 through pi/2
  • atan - arc tangent; the returned angle is in the range -pi/2 through pi/2
  • cbrt - cube root
  • ceil - smallest value that is greater than or equal to the argument and is an integer
  • cos - trigonometric cosine
  • cosh - hyperbolic cosine
  • exp - Euler's number e raised to the power of the value
  • expm1 - ex-1
  • floor - largest value that is less than or equal to the argument and is an integer
  • getExp - unbiased exponent used in the representation of val
  • log - natural logarithm (base e)
  • log10 - base 10 logarithm
  • log1p - natural logarithm of (val+1)
  • nextup - floating-point value adjacent to val in the direction of positive infinity
  • round - closest 64 bit integer to the argument
  • roundhe - double value that is closest in value to the argument and is equal to a mathematical integer, using the half-even rounding method.
  • signum - signum function of the argument; zero if the argument is zero, 1.0 if the argument is greater than zero, -1.0 if the argument is less than zero
  • sin - trigonometric sine
  • sinh - hyperbolic sine
  • sqrt - correctly rounded positive square root
  • tan - trigonometric tangent
  • tanh - hyperbolic tangent
  • todeg - converts an angle measured in radians to an approximately equivalent angle measured in degrees
  • torad - converts an angle measured in degrees to an approximately equivalent angle measured in radians
  • ulp - size of an ulp of the argument

Power

Internally, Tasker does its best to keep power usage down. Following are some macro-strategies to achieve this.

Context Monitoring

When a profile contains multiple contexts, power is saved by only monitoring for changes in order of the least-power-hungry first. For example, in a profile with a Time and App context, Tasker will not decide that it needs to monitor for a changing application unless the Time context is active (because the profile cannot become active until both contexts are active).

Tasker rates contexts for power-hungriness in the following (ascending) order:

  • Other State
  • Day / Time
  • Calendar Entry State
  • Cell Near State
  • App
  • Network Location
  • Wifi Near State
  • GPS Location
  • Proximity Sensor / Gesture Event / Orientation State (accelerometer activation)

Items at the bottom of the list won't become eligible for monitoring until all items further up the list are active.

Display-Off Checks

When the display is off, all necessary 'active' checks (GPS/Net Location, Wifi Near, App) are done at the same time so that the device is awake for as short a time as possible. See Display Off Timings in Menu / Prefs / Monitor for the frequency and maximum duration of these checks.

Settings

What's A Setting ?

Settings are actions like Display Brightness and Ringer Volume whose effects are reversed by Tasker when the profile(s) which applied them are no longer active.

Settings have a cog icon next to them. Normal actions have a lightning bolt.

Single Profile

When a setting is applied by the profile's Enter Task, its value is restored after the profile becomes inactive again. For example, if the ringer volume is at 7 and is set to 0 in the Enter Task, when the profile becomes inactive it is automatically set back to 7.

In other words, settings are only valid for the lifetime of their profiles.

Multiple Profiles

When multiple profiles that affect a setting are active simultaneously:
  1. the setting has the value from the most recently activated profile
  2. when all profiles are inactive, the setting has the value from before any profile was active

Special Cases

  • if a setting is changed by the Exit Task the profile will never save the setting's initial value.
  • settings changed in an instant profile (one with an event context or repeating/non-ranged time context) remain changed after the event. The reasoning is that there is no point in changing the setting for the half-second that the event lasts.

Notes

  • settings are not actively maintained. If something else changes the setting once the Enter task has run, it's not the case that this is detected and the Enter task value automatically reapplied.
Complicated, huh ?

Variables

General

A variable is a named value which changes over time e.g. the level of the battery, the time of day.

When Tasker encounters a variable name in a text, it replaces the name with the current value of the relevant variable before carrying out the action.

The main purposes of variables are:

Built-In Variables

The values of Built-In variables are updated by Tasker. Their names always use all-capital letters.
  • Airplane Mode Status
    (dynamic)
    %AIR
    Whether Airplane Mode is on or off
  • Battery Level
    %BATT
    Current device battery level from 0-100.
  • Bluetooth Status (dynamic)
    %BLUE
    Whether Bluetooth is on or off.
  • Call Name / Number/ Date / Time (In) (dynamic, monitored)
    %CNAME / %CNUM / %CDATE / %CTIME
    The caller name, number, date and time of the last call received.
    Caller number is 0 if it's unknown.
    Caller name is ? if it's unknown (probably because the caller number was blocked) and set to the caller number if the contact couldn't be looked up. It's unavailable on Android versions prior to 2.0.
  • Call Name / Number/ Date / Time / Duration (Out)(dynamic, monitored)
    %CONAME / %CONUM / %CODATE / %COTIME / %CODUR
    The called name, number, date and time of the last (not the current) outgoing call made.
    Called Name is set to the called number if the contact couldn't be looked up. It's unavailable on Android versions prior to 2.0.
  • Cell ID (dynamic,monitored)
    %CELLID
    The current cell tower ID if known.
    If you are using a Cell Near state, note that sometimes the Cell Near state will stay active even though %CELLID reports that the tower ID is unknown or invalid; that is because Cell Near only responds to valid IDs to prevent the state becoming inactive e.g. due to a service interruption.
  • Cell Signal Strength (dynamic,monitored)
    %CELLSIG

    The current phone signal level from 0-8 inclusive on a rougly linear scale. On some CDMA phones, the level will rise in steps of 2 (0,2,4,6,8). The value is -1 if the value is unknown or there is e.g. no service.
    There is a bug with some Android versions that the reported signal strength is not updated until the device is turned off and on.
  • Cell Service State (dynamic,monitored)
    %CELLSRV
    The current phone service state. One of unknown, service, noservice, emergency, nopower.
  • Clipboard Contents
    %CLIP
    The current contents of the system clipboard.
  • CPU Frequency
    %CPUFREQ
    The current frequency CPU 0 is running at. See also: CPU Control.
  • CPU Governor
    %CPUGOV
    The current governor controlling the frequency of CPU 0. See also: CPU Control.
  • Date
    %DATE
    Current human-readable date.
  • Day of the Month
    %DAYM
    Current Day of the Month, starting at 1.
  • Day of the Week
    %DAYW
    Current Day of the Week starting with Sunday.
  • Display Brightness %BRIGHT
    Current screen brightness, 0-255. On some devices, if the Android setting Auto Brightness is enabled, the value will always be 255.
  • Display Timeout %DTOUT
    Current system screen timeout (seconds).
  • Email From / Cc / Subject / Date / Time (dynamic)
    %EFROM / %ECC / %ESUBJ / %EDATE / %ETIME
    The From, Cc, Subject, Received Date and Received Time of the last email received by the K9 email agent.
  • Free Memory
    %MEMF
    System free memory remaining in MB.
  • GPS Status
    %GPS
    Whether the system GPS receiver is on or off.
  • HTTP Response Code / Data / Content Length
    (dynamic)) %HTTPR / %HTTPD / %HTTPL
    Values from the last HTTP POST/GET action.
  • Keyguard Status
    %KEYG
    Whether the Keyguard is on or off
  • Last Application
    %LAPP
    The name of the application that was in the foreground before the current one e.g. Maps.
  • Last Photo
    %FOTO
    The filesystem path to the last photo taken by Tasker or the standard system camera application.
  • Light Level (dynamic,monitored)
    %LIGHT
    The last recorded light level in lux.
    Note that Android does not return a value until the light level changes, so to test the sensor is working you should put it near a bright light initially.
  • Location (dynamic)
    %LOC
    The latitude and longitude of the last GPS fix.
    See note.
  • Location Accuracy (dynamic)
    %LOCACC
    The accuracy in metres of the last GPS fix.
    See note.
  • Location Altitude (dynamic)
    %LOCALT
    The altitude in metres of the last GPS fix, or 0 if unavailable.
    See note.
  • Location Speed (dynamic)
    %LOCSPD
    The speed in metres/second at the last GPS position fix or 0 if unavailable.
    See note.
  • Location Fix Time Seconds (dynamic)
    %LOCTMS
    The time in seconds of the last GPS fix. To get age of fix, take this away from %TIMES.
    This value is not set until an offset of the GPS time from the fixed time has been calculated (should be after the first GPS fix) because the value is meaningless until that point.
    See note.
  • Location (Net) (dynamic)
    %LOCN
    The latitude and longitude of the last network location fix.
    See note.
  • Location Accuracy (Net) (dynamic)
    %LOCNACC
    The accuracy in metres of the last network location fix.
    See note.
  • Location Fix Time (Net) (dynamic)
    %LOCNTMS
    The time in seconds of the last net location fix. To get age of fix, take this away from %TIMES.
    See note.
  • Music Track (dynamic))
    %MTRACK
    The current playing music track, supported for:
    • Tasker actions Music Play and Music Play Dir
    • Built-in Android music-player, probably not on all devices however
    • Power AMP
    • Phantom Music Control Pro
    Priority: if both Tasker and one of the other supported apps are playing simultaneously, the non-Tasker track will be shown. If more than one of the other supported apps is playing simultaneuosly, behaviour is unspecified.
    Notes:
    • if you don't have a supported player, you could try Phantom Music Control Pro, which supports a lot of players and should pass the info on to Tasker
    • pausing a track clears the variable, unpausing sets it again
  • Muted
    %MUTED
    Whether the microphone is currently muted (on) or not (off).
  • Night Mode
    %NIGHT
    The current Android Night Mode.
    One of on, off or auto.
    If auto, Android will decide whether it should be in Night Mode itself.
  • Notification Title (monitored, dynamic)
    %NTITLE
    The title of the last notification shown in the status bar. Requires Tasker's accessibility server to be running (see Android Accessibility Settings). Notifications generated by Tasker are not shown. Notifications for some apps will not register i.e. the variable will be blank.
    Not available on Cupcake.
  • Phone Number
    %PNUM
    The current phone number of the device, if it's in service.
    On some phones it doesn't work (Android limitation), seems related to the type of SIM.
  • Profiles Active (dynamic)
    %PACTIVE
    A comma-separated list of the currently active, named profiles in activation order. Duplicate names will appear on the list only once. The list always starts and ends with a comma to make matching easier, if it's not empty.
  • Profiles Enabled (dynamic)
    %PENABLED
    A comma-separated list of the currently enabled, named profiles in creation order. Duplicate names will appear on the list only once. The list always starts and ends with a comma to make matching easier, if it's not empty.
  • Roaming
    %ROAM
    on if device is roaming on the current telephone network, otherwise off.
  • Screen (dynamic)
    %SCREEN
    Whether the screen is on (value on) or off (value off).
  • Silent Mode (dynamic)
    %SILENT
    The current state of silent mode: off, vibrate or on.
  • SIM Serial Number
    %SIMNUM
    The serial number of the SIM card, if one is present and accessible.
    If the SIM has not been unlocked it will not be available.
  • SIM State
    %SIMSTATE
    The current state of the SIM card.
    One of unknown, absent, pinrequired, pukrequired, netlocked or ready.
  • Speakerphone
    %SPHONE
    Whether the speakerphone is on or off
  • Speech (dynamic)
    %SPEECH
    The current utterance as a result of a Say or Say File action, if applicable.
  • Task Queue Seconds (dynamic)
    %QTIME
    The number of seconds since the current task first started executing. Note that tasks can be interrupted by higher priority tasks, so this number is not necessarily the total run-time of the task.
  • Tasks Running (dynamic)
    %TRUN
    A comma-separated list of any named tasks which are currently running. The list always starts and ends with a comma to make matching easier, if it's not empty.
  • Telephone Network (dynamic, monitored)
    %TNET
    The current telephony network operator the device is using.
    May be unreliable on CDMA networks
  • Text From/Date/Subject/Time (monitored)
    %SMSRF / %SMSRN / %SMSRB / %SMSRD / %MMSRS / %SMSRT
    The sender address, name, body, date and time of the last text (SMS or MMS) received.
    These variables will be empty until the first time a text is received after they have been referenced because Tasker does not monitor SMSs unless it's needed.
    Sender name is set to sender address of no contact could be looked up. It's unavailable on Android versions prior to 2.0.
    Subject will only be set if the last text was an MMS.
  • Time
    %TIME
    Current human-readable time separated by a period e.g. 10:59
  • Time Seconds
    %TIMES
    The current time in seconds.
    (seconds since some time in January, 1970, if you must know).
  • UI Mode (dynamic,monitored)
    %UIMODE
    The current Android UI mode.
    One of car, desk or normal.
  • Uptime Seconds
    %UPS
    The number of seconds since the device last booted.
  • Volume - Alarm/Call/DTMF/Media/Notification/Ringer/System (dynamic)
    %VOLA / %VOLC / %VOLD / %VOLM / %VOLN / %VOLR / %VOLS
    Current audio channel volume level.
    On some devices, volume changes are not picked up dynamically, on others not when using the phone app.
  • WiFi Info
    %WIFII
    When connected to an Access Point (AP), shows human-readable data about the AP. When not connected, show details of the most recent Wifi scan results for nearby APs.
  • WiFi Status (dynamic)
    %WIFI
    Whether WiFi is on or off. Note: if WiFi is enabling or disabled, in fact anything but enabled, it's classed as off.
  • Wimax Status
    %WIMAX
    Whether Wimax is on or off. Note: if Wimax is enabling or disabled, in fact anything but enabled, it's classed as off.
  • Window Label (monitored)
    %WIN
    The label of the current window, which could be a full-screen activity or a dialog.
    Not set if the label is unknown.
    For some windows, the label might be that of the first item in the window e.g. a menu entry or even a button.
General Notes

Variables marked dynamic in the list above trigger changes in Variable Value states and Variable Set events whenever their value changes.

Variables marked monitored will cause the relevant monitor to startup to track their state when they are used in contexts or tasks which are used by widgets or enabled profiles. For instance, %CELLS used in a Flash action will cause cell location to be tracked.

Limitation: monitored variables cannot be detected in anonymous shortcuts.

Note On Location Variables

When the relevant provider (Net or GPS) of a location context is active, these variables report the values from the provider, which may be more recent than Tasker has seen if other applications are asking for location.

When the relevant provider is not active, these variables report the last values seen by Tasker, which could be the result of a Get Location action or of monitoring for a Location Context.

That means the the reported fix times could go backwards, if you turn off the location provider between two uses of the variables.

Location variables can also be manually updated by running the Get Location action.

User Variables

The action Variable Set (and several others) can be used to create new variables. Variable names have the following restrictions:
  • they must start with the % character
  • they are case-sensitive
  • then must at least a further 3 alphanumeric characters
  • they can also contain the underscore character (_) but not start or end with it
Global vs Local Variables
All built-in variables are global, meaning they are visible anywhere in Tasker (e.g. %WIFI)

User variables which have one or more capital letters in their name are also global (e.g. %Car)

However, user variables which have all-lower-case names (e.g. %fruit) are local, meaning they are only visible in the task in which they are used (or the scene in which they are used, if the task was launched from by a scene event).

In general, it's best to use local variables wherever possible because:

  • you know they won't be interfered with by other tasks
  • they are more efficient in several ways

Note: multiple copies of the same task running at the same time each have their own separate copy of their local variables.

Variable Lifetime
The value a variable holds should last until Tasker is uninstalled if it is not changed by any task.
Uninitialized Variables

User-variables which have not had a value assigned do not have replacements carried out e.g. in the expression I love %fruit, if %fruit is uninitialized, the expression remains as it is, otherwise %fruit is replaced with the value.

Exception: uninitialized variables used in mathematical expressions are replaced with 0.

Variables In Plugins

Plugin developers can tell Tasker to replace variables it finds in plugin strings with their current Tasker value. If you have a plugin which doesn't support this, send the developer this URL
http://tasker.dinglisch.net/plugins.html

which has the relevant details.

Variable Arrays

Tasker supports pseudo-arrays.

They are especially useful when used with the For action, since you can perform a set of actions on each element in turn e.g. list a set of files then test each one.

Examples

If the four variables %arr1, %arr2, %arr3, %arr4 hold respectively a, b, c and d then we have an array with 4 elements. These variables can be used just like any other, however it is also possible to access them in special ways. Here are some examples:

  • %arr(#)
    The number of defined array elements (4 in this case)
  • %arr(#>)
    The index of the first defined array element, or 0 if none are defined (1).
  • %arr(#<)
    The index of the last defined array element, or 0 if none are defined (4)
  • %arr(#?b/c)
    A comma-separated list of the array indices (lowest to highest) with matching values, or 0 if none match (2,3 in the example)
  • %arr(>)
    The contents of the first defined array element (a)
  • %arr(<)
    The contents of the last defined array element (d)
  • %arr() or %arr(:)
    All of the array elements separated by commas (a,b,c,d)
  • %arr(2) or just %arr2
    The content of the element with index 2 (b)
  • %arr(2:4)
    Contents of defined elements with indices 2 to 4 (b,c,d)
  • %arr(:3)
    All the defined elements with indices up to 3 (a,b,c)
  • %arr(3:)
    All the defined elements with indices starting from 3 (c,d)
  • %arr(1:2)
    All the defined elements with indices from 1 to 2 (a,b)
Notes:
  • arrays will virtually always have all their elements defined so e.g. %arr(>) will be the same as %arr(1), %arr(#) will be the same as %arr(#<)
  • index specifiers can themselves be variables (e.g. %arr(1:%MAX) or %arr(#?%FINDME))
Creating An Array
  1. using Variable Split:
    Variable Set %arr a,b,c,d
    Variable Split %arr
    If your data has commas in it, you can separate the values with e.g. @ and specify @ also in the Variable Split action.
  2. by assigning individual elements with Variable Set:
    Variable Set, %arr3, c.
  3. using Array Push to add an initial element
  4. some other actions also create arrays for their results e.g. List Files.
Inserting Elements
Use the Array Push action.

The Fill Spaces parameter might need more explanation. It is only relevant if one or more of the array elements are undefined. As an example, if we have the array elements %arr1 and %arr3 containing apple and banana:

  • Array Push %arr1, 1, pear
    leaves %arr1, %arr2 and %arr4 containing pear, apple and banana.
  • but Array Push %arr2, 1, pear, Fill Spaces
    leaves %arr1, %arr2 and %arr3 containing pear, apple and banana.
Removing Elements

Use the Array Pop action. Note the difference between Array Pop and Variable Clear: Pop reduces the number of elements in the array, while Clear merely changes elements to undefined.

Example: if we have the array elements %arr1, %arr2, %arr3 containing apple,pear and banana:

  • Variable Clear %arr2
    leaves %arr1 and %arr3 containing apple and banana.
  • but Array Pop %arr2
    leaves %arr1 and %arr2 containing apple and banana.
Deleting An Array
Use Array Clear.

In most cases you could also use Variable Clear %arr* with Pattern Matching checked, but that would also delete variables called e.g. %arrTOODEETOO so Array Clear is safer.

Array Efficiency
Arrays are intended for convenience when processing high-level data, not for e.g. processing astronomical data. Doing thousands of array actions will likely take several seconds (although mostly due to the housekeeping work done by Tasker in-between each action rather than due to the array operations themselves).

In terms of storage efficiency, they are also fairly hopeless. You probably do not want to store tens of thousands of items in an array.