A method, comprising: at a computing device that includes a first processor (101, 201, 901), a second processor (120, 220, 920) and a third processor, wherein the first processor is a sensor hub, the second processor is a low power core and the third processor is an application processor: receiving, at the first processor, first sensor data from a first sensor (152-158, 252-258), the second processor and third processor being in a low power state; determining, at the first processor, a motion state of the computing device using the first sensor data; in response to determining that the motion state corresponds to a predetermined motion state, activating the second processor; receiving, at the second processor, second sensor data from a second sensor (130, 140, 230, 240), the third processor being in a low power state; determining, by the second processor, that the motion state corresponds to the predetermined motion state using the second sensor data; determining (913, 914) whether an accumulated time of the computing device in the motion state exceeds a predetermined threshold; and in response to determining that the motion state corresponds to the predetermined motion state using the second sensor data and that the accumulated time exceeds the predetermined threshold, activating the third processor and sending the motion state to the third processor. at a computing device that includes a first processor (101, 201, 901), a second processor (120, 220, 920) and a third processor, wherein the first processor is a sensor hub, the second processor is a low power core and the third processor is an application processor: receiving, at the first processor, first sensor data from a first sensor (152-158, 252-258), the second processor and third processor being in a low power state; determining, at the first processor, a motion state of the computing device using the first sensor data; in response to determining that the motion state corresponds to a predetermined motion state, activating the second processor; receiving, at the second processor, second sensor data from a second sensor (130, 140, 230, 240), the third processor being in a low power state; determining, by the second processor, that the motion state corresponds to the predetermined motion state using the second sensor data; determining (913, 914) whether an accumulated time of the computing device in the motion state exceeds a predetermined threshold; and in response to determining that the motion state corresponds to the predetermined motion state using the second sensor data and that the accumulated time exceeds the predetermined threshold, activating the third processor and sending the motion state to the third processor. receiving, at the first processor, first sensor data from a first sensor (152-158, 252-258), the second processor and third processor being in a low power state; determining, at the first processor, a motion state of the computing device using the first sensor data; in response to determining that the motion state corresponds to a predetermined motion state, activating the second processor; receiving, at the second processor, second sensor data from a second sensor (130, 140, 230, 240), the third processor being in a low power state; determining, by the second processor, that the motion state corresponds to the predetermined motion state using the second sensor data; determining (913, 914) whether an accumulated time of the computing device in the motion state exceeds a predetermined threshold; and in response to determining that the motion state corresponds to the predetermined motion state using the second sensor data and that the accumulated time exceeds the predetermined threshold, activating the third processor and sending the motion state to the third processor.