0
我想在兩秒鐘後重復運行下面給出的一段代碼,我多次搜索解決方案並找到這一個。如何在Android中在後臺運行兩秒後重復運行代碼?
下面給出的代碼僅適用於某個時間,因爲Timer在某個時間後會被系統銷燬。我還嘗試過在2秒後啓動服務的Alarm Manager,但即使服務不包含任何代碼,也會消耗太多內存。
請(連續三天搜索該解決方案),建議以其他方式每隔2秒在後臺重複運行一堆代碼,而不要被系統破壞。
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();
final ActivityManager.RunningAppProcessInfo appProcess =runningAppProcessInfo.get(0) ;
currentAppName = appProcess.processName.toString();
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
if(temp.equalsIgnoreCase(currentAppName))
{
}
else
{ Toast.makeText(MyService.this.getApplicationContext(),appProcess.processName.toString(),Toast.LENGTH_SHORT).show();
temp=""+currentAppName;
}
}
});
for(int i=0;i<LockedApps.LockedAppsList.size();i++) {
if (appProcess.processName.toString().contains(LockedApps.preflist.get(i))) {
if (flag == 0) {
Intent x = new Intent(getApplicationContext(), LockActivity.class);
x.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(x);
}
}
}