- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在我的 OnDestroy ()
中调用一个服务,但是日志都不起作用,有人知道为什么吗?
@Override
protected void onDestroy() {
Log.e("onDestroy", "here");
startService(new Intent(this, ServiceOff.class));
super.onDestroy();
}
如果我在 onStop 上调用该服务,它会运行,即使它在我关闭应用程序时也被调用,但由于显而易见的原因 onStop 仍然可以打开应用程序,因此无法在那里调用它。
重要的是,我通过拉窗口模式并拖动侧面来关闭应用
完整的 Activity 代码:
public class editar_perfil extends AppCompatActivity {
FloatingActionButton ok;
TextInputEditText senha, new_senha;
ProgressBar login_progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editar_perfil);
reference();
}
private void reference() {
ok = findViewById(R.id.ok);
senha = findViewById(R.id.senha);
new_senha = findViewById(R.id.new_senha);
login_progress = findViewById(R.id.login_progress);
ok.setOnClickListener(v ->{
if(conectV(this)) {
if (ge(senha).length() > 7 && ge(new_senha).length() > 7) {
String paramentros = "session=" + session +
"&id=" + meu_id +
"&senha=" + ge(senha) +
"&new_senha=" + ge(new_senha);
stateAll(false, senha, new_senha, ok);
showProgress(true, login_progress, this);
new SolicitaDados(paramentros).execute(url + "new_senha.php");
} else {
Toast.makeText(this, "Tamanho de senha inválido!", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(this, "Sem conexão com a internet!", Toast.LENGTH_SHORT).show();
}
});
}
public class SolicitaDados extends AsyncTask<String, Void, String> {
private String parametros;
private SolicitaDados(String paramentros) {
this.parametros = paramentros;
Log.e("script", paramentros);
}
@Override
protected String doInBackground(String... urls) {
return Conexao.postDados(urls[0], this.parametros);
}
@Override
protected void onPostExecute(String resultado) {
if (resultado != null) {
Log.e("res", resultado);
if(resultado.contains("ok")){
Toast.makeText(editar_perfil.this, "Senha alterada com sucesso!", Toast.LENGTH_SHORT).show();
finish();
}else{
stateAll(true, senha, new_senha, ok);
showProgress(false, login_progress, editar_perfil.this);
Toast.makeText(editar_perfil.this, "Senha antiga incorreta, tente novamente!", Toast.LENGTH_SHORT).show();
}
}else{
stateAll(true, senha, new_senha, ok);
showProgress(false, login_progress, editar_perfil.this);
Toast.makeText(editar_perfil.this, "Erro inesperado, tente novamente!", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onDestroy() {
Log.e("onDestroy", "here");
startService(new Intent(this, ServiceOff.class));
super.onDestroy();
}
}
最佳答案
来自 onDestroy文档:
Perform any final cleanup before an activity is destroyed. This can happen either because the activity is finishing (someone called finish() on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing() method.
可能您的 Activity 仍然存在,这就是没有调用 onDestroy 的原因。
我不知道完整的代码,所以很难说出你想要实现什么,也许 onPause() 或 onStop() 可以解决问题。
关于android - OnDestroy 中的调用方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961379/
我创建了一个窗口,并在某个时候调用了 OnDestroy(),而用户从未单击关闭窗口的“关闭”或“X”按钮。 还有哪些其他操作/ Action /事物可能导致调用此函数,为什么? Microsoft
这是我的部分代码: package com.admobsdk_dfp_handler; import com.google.ads.*; import com.google.ads.doublecli
覆盖 Activity 的 ondestroy 时,我应该在 super.onDestroy() 之前或之后放置命令吗? protected void onDestroy() { //opti
我用 onDestroy()方法,我的代码没有完成: @Override public void onDestroy() { super.onDestroy();
我的代码:(用于耳机控制和更改音量) @Override public void onResume() { headSetConn=new HeadSetBCast(); regist
我正在阅读 Activity 生命周期,并阅读有关启动和销毁 Activity 的文档,链接如下: http://developer.android.com/training/basics/activ
我目前正在构建一个 Android 应用程序,它将用作防盗类应用程序。基本上,一旦警报发出,应用程序将监控加速度计以检测运动。如果是,用户将有 15 秒的时间输入设置的密码来停用警报,否则:BIIII
我在检测应用程序何时完成时遇到了一些问题。我需要在 Destroy 上执行一些操作,例如将参数保存到数据库中并最终连接到服务器。 问题是,如果我将代码放在 onDestroy 中,例如,当方向发生变化
我知道在 Android 中,您不会得到有保证的 Activity 的 onDestroy() 调用。我的问题是在哪些情况下不调用 onDestroy()? 最佳答案 假设有两个 Activity A
当我的 Activity 由于内存而被操作系统破坏时(例如,当一个电话打断它时),然后当我的 Activity 试图再次启动时,它不会返回任何预期的回调,除了 onDestroy(),我怎样才能再次恢
我无法理解 onDestroy() 的行为。我的问题是:是否有可能在不杀死 hole 应用程序的情况下不调用 onDestroy() 就杀死一个 Activity ?我的意思是,我会不会回到我的应用程
我希望当我点击手机上的后退按钮时关闭当前 Activity 并返回菜单并停止媒体播放器 但我收到错误消息:不幸的是武器已停止!单击后退按钮 那么如何解决呢? public class pushke e
我开始在我看过的两个视频类(class)中学习 android 开发,我读过的一本书说 onDestroy() 是操作系统在感觉释放内存时调用的。甚至没有人提到它会在用户关闭应用程序时被调用。这让我怀
我已经学会了如何发送推送通知,效果很好,但即使在应用程序关闭后我也需要向用户发送通知。到目前为止,我知道如何在应用程序运行时发送它。在 Android 上,当应用程序处于后台或什至关闭时,您如何发送通
为什么后桶会在父级上调用 onDestroy()? 我有以下场景: Activity A 通过 intent 打开 Activity B Intent intent = new Intent(pare
我试图在我的 OnDestroy () 中调用一个服务,但是日志都不起作用,有人知道为什么吗? @Override protected void onDestroy() { Log.e("on
嗨,这是我的代码,我试图做的是在我触摸开始出现的屏幕可绘制对象后,首先在背景 (touch2) 中出现一张图片。那么问题出在哪里呢? 问题是在我触摸屏幕之前,当我看到 touch2 图像时,如果我按下
每当我的 Activity 被终止时,我都会尝试执行一些代码,但是当它只是简单地移到后台时不会(所以只在 onPause() 中调用它不是解决方案),并且我了解不能保证调用 onDestory()。我
我要打电话 onDestroy() android 中的服务方法。 我已经在互联网上搜索了很多,很多答案都是 if 服务强制停止或以某种方式它的 onDestroy() 永远不会调用。 但我真的需要知
我正在阅读“开始 Android 4 开发”这本书,并且我正在使用按钮中的以下功能控制服务: public void startService(View view) { startServic
我是一名优秀的程序员,十分优秀!