首页 > 解决方案 > 在android中杀死应用程序后执行代码

问题描述

我想在单击按钮后将文本复制到剪贴板,并且它必须在我完成的特定时间后清除。即使应用程序正在运行或被终止,它也必须在特定时间后清除剪贴板。

例如- 1)我有 30 秒计时器,30 秒后我必须清除我的剪贴板。注意 - 我已经实现了第 1 点,待定部分 - 即使应用程序被杀死也执行第 1 点

import android.app.Service;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Intent;
import android.os.Build;
import android.os.CountDownTimer;
import android.os.IBinder;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.widget.Toast;

public class ClipBoardService extends Service {
    ClipboardManager clipboardManager;


    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        String text=intent.getStringExtra("SelectedText");
        clipboardManager= (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
        ClipData clipData = ClipData.newPlainText("text",text);
        clipboardManager.setPrimaryClip(clipData);
        Toast.makeText(getApplicationContext(), "Copied", Toast.LENGTH_LONG).show();
        CountDownTimer countDownTimer=new CountDownTimer(16000,36000) {
            @Override
            public void onTick(long millisUntilFinished) {
                Log.e("Status","Not Completed");
            }


            @Override
            public void onFinish() {
                clipboardManager.clearPrimaryClip();
                Toast.makeText(getApplicationContext(), "Clipbaord Cleared", Toast.LENGTH_LONG).show();
                onDestroy();
            }
        };
        countDownTimer.start();
        return START_NOT_STICKY;
    }
    
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}

标签: javaandroidandroid-activityserviceclipboard

解决方案


推荐阅读