java - 在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;
}
}
解决方案
推荐阅读
- visual-studio-code - SUMX 为所有行提供相同的值
- c# - 更新 BSON 文档添加一条新记录 C# ,然后更新新记录
- windows - 从哪里获得适用于 Windows 的最新 GCC 版本
- ruby-on-rails - 我的顺风实用程序类在生产中不起作用
- spring - 选择实体的另一个属性的属性
- javascript - 如何单击一次并导航到请求页面?
- javascript - 在原生 JS 组件之间传递数据
- python - Pickle Error 13 Permission Denied 访问 os 制作的目录时
- r - 绘制 3D 椭圆抛物面的问题
- selenium - 打开新的浏览器选项卡