A method for charging a battery, characterized by comprising: acquiring a battery temperature of the battery; determining a charging current value I n for the n th charging stage of the battery, according to the acquired battery temperature and a preset mapping relationship between different temperature ranges and charging current values I, wherein 1<n≤N, N is the total number of charging stages, and a preset charging cut-off voltage value V n for the n th charging stage is greater than V n-1; wherein the mapping relationship comprises a correspondence relationship among charging cut-off voltage values, temperature ranges and charging current values; charging the battery with I j in the j th charging stage, wherein 1≤j≤N; acquiring a voltage value of the battery at the current time; if the voltage value at the current time is less than V j, continuing to charge the battery with I j; if the voltage value at the current time is not less than V j and j<N, charging the battery with I j+1; if the voltage value at the current time is not less than V j and j=N, stopping charging the battery; wherein charging the battery with I j comprises: acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j; and charging the battery with I j. acquiring a battery temperature of the battery; determining a charging current value I n for the n th charging stage of the battery, according to the acquired battery temperature and a preset mapping relationship between different temperature ranges and charging current values I, wherein 1<n≤N, N is the total number of charging stages, and a preset charging cut-off voltage value V n for the n th charging stage is greater than V n-1; wherein the mapping relationship comprises a correspondence relationship among charging cut-off voltage values, temperature ranges and charging current values; charging the battery with I j in the j th charging stage, wherein 1≤j≤N; acquiring a voltage value of the battery at the current time; if the voltage value at the current time is less than V j, continuing to charge the battery with I j; if the voltage value at the current time is not less than V j and j<N, charging the battery with I j+1; if the voltage value at the current time is not less than V j and j=N, stopping charging the battery; wherein charging the battery with I j comprises: acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j; and charging the battery with I j. acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j; and charging the battery with I j.