Mahela Jayawardene will give up Sri Lanka's Test and one-day captaincy after their tour of Australia.
The batsman, 35, said it was time for a younger leader and nominated vice-captain Angelo Mathews to take over.
Jayawardene's second stint as captain began in January, when he was called in to replace Tillakaratne Dilshan and committed to a 12-month tenure.
"I don't want to continue captaining Sri Lanka after this tour," he said. "I hope I don't get any SOS calls later."
Jayawardene, who quit the Twenty20 captaincy after the World Twenty20 final in October, is set to play his 136th Test against Australia in Hobart on Friday (23:30 GMT on Thursday).
"We need to move on to a younger leader and it's much easier for Sri Lankan cricket if we get a new guy in while the senior players are still around so we can help him out."
Jayawardene, who has scored 10,640 Test runs at an average of 50.18, said 25-year-old Mathews was the obvious choice to replace him as captain.
"Angelo is the one everyone has earmarked for the job and I think he's good enough," he said.
"If Angelo gets the opportunity it'll be much easier in the transition because he'll have Kumar Sangakkara, Dilshan and myself around him in tough situations so we can build him through that period and after that he'll be on his own."