标签: ondestroy

我可以通过"高级任务杀手"检测我的服务何时被杀死

我的应用运行地理定位服务,用户可以通过toggleButton激活或停用.要检查服务的状态,我在共享首选项中写了一个布尔值.由于我的服务的onDestroy(),我听服务的开始和结束.

我的问题是:当用户使用"高级任务杀手"杀死服务时,我不知道服务被杀死了,onDestroy没有被调用!

我该怎么处理?

谢谢你的帮助.

弗洛朗

android kill task geolocation ondestroy

7
推荐指数
1
解决办法
7292
查看次数

如果我们在Android应用程序的每个活动中重写OnDestroy()方法都可以吗?

如果我们OnDestroy()在Android应用程序的每个活动中覆盖方法都可以吗?

@Override
    public void onDestroy() {
        super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

只需通过调用super.onDestroy()onDestroy()的方法,将它清理内存资源?

android ondestroy

7
推荐指数
1
解决办法
1万
查看次数

onDestroy()或finish()实际上是否会杀死活动?

其实我知道我在询问Android的简单和基本概念.但我对这些finish()onDestroy()方法有点困惑.这是否会破坏活动并释放与这些活动相关的资源?

我尝试了一个只包含一个活动的简单应用程序.我认为这个概念就像应用程序运行时,活动将开始.当我们点击后退按钮时,它将完成.我在每个生命周期方法中给出了一些toast消息,以了解内存使用情况.而当我点击后退按钮就执行onPause(),onStop()onDestroy().我以为这个活动结束了.但是当我再次重新启动应用程序时,它的内存比以前多了.每当我从eclipse运行应用程序或从主屏幕重新启动应用程序时,都会发生这种情况.

为什么会这样?我怎么能真正破坏应用程序/活动以释放内存?


我包括我的代码.我只在课堂上给出一个吐司留言.然后内存使用量也在增加.

每次运行应用程序时,分配的大小都会增加,如:3302744,3442384,3474552

 public class myActivity extends Activity
   {
         @Override
         public void onCreate(Bundle savedInstanceState)
         {
             super.onCreate(savedInstanceState);     
        Toast.makeText(getBaseContext()," allocated size  = " + Debug.getNativeHeapAllocatedSize(), 1).show();      
         }

   }
Run Code Online (Sandbox Code Playgroud)

表现:

<application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".myActivity "  
                  android:label="@string/app_name"  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity> 
 </application>
Run Code Online (Sandbox Code Playgroud)

为什么每次都会增加内存?

android memory-management activity-lifecycle ondestroy

6
推荐指数
2
解决办法
2万
查看次数

没有调用Service的onDestroy()方法的情况?

我知道可能永远不会调用Service的onDestroy()方法,但是有人可以告诉我何时会出现这种情况?我特别感兴趣的是服务是否可能被杀死,但它的VM将继续运行.

我问,因为我有一个服务在服务的onStartCommand()方法中注册ContentObservers并取消注册它们onDestroy().如果从未调用过该服务的onDestroy()方法,因为整个虚拟机(以及它创建的观察者)都被杀死了.但我不知道是否有可能为一个服务"走开"没有的onDestroy()被调用,而它创造的观察员将生活和继续得到改变.

android android-service ondestroy

6
推荐指数
1
解决办法
4316
查看次数

ondestroy不总是被称为?

我已经在onDestroy我的活动中添加了一些缓存清理代码,但大部分时间代码都没有执行,除非我通过显式完成活动finish().

编辑:只读或onDestroyfinish()在系统资源不足时调用.那么我需要在哪里放置缓存清理代码?如果我将其放入onPause()并且用户返回应用程序,则清除缓存.我实际上是将重要的临时文件存储在不应删除的缓存中onPause.

android ondestroy

6
推荐指数
1
解决办法
9062
查看次数

Angular2 在 onDestroy 之前分离视图?

在 Angular2 中是否有可能在组件被销毁之前收到通知!?即当它即将被摧毁时。

我有一个容器组件,它在其子组件之一上保存一个 ViewContainerRef ,该组件将用于动态加载视图。如果容器组件本身被破坏(在我的例子中,由于父组件中的 *ngFor 指令),我想分离当前在 ViewContainerRef 中加载的视图并将其再次附加到另一个容器上。

事情是:在 ngOnDestroy() 生命周期挂钩中,ViewContainerRef 已经被清除,因此所有视图都被销毁,不再需要分离。

ondestroy angular

6
推荐指数
1
解决办法
6149
查看次数

$destroy 事件在角度中不起作用

$scope.$on('$destroy', function (event){    
        $timeout.cancel(promiseObj);    
    });
Run Code Online (Sandbox Code Playgroud)

如果我位于正在加载的页面上(因为页面包含$http请求,因此需要时间加载数据)并且在加载时,我从导航更改页面,$timeout 不会被删除,并且连续http调用正在进行。你能帮我吗?

scope timeout ondestroy angularjs

5
推荐指数
1
解决办法
3891
查看次数

如何在简单的非活动 java 类中创建类似于 onDestroy 的方法?

我想在类的实例关闭或销毁时执行一两个操作。我正在寻找类似于活动中 onDestroy 的东西。

编辑

我添加了代码,指出如何从 Helper 类返回 SQLiteDatabase。我使用最终代码来确保数据库已关闭。

public class PMDBDatabase {

    private static SQLiteDatabase DataBase = null;
    private static PMDBHelper dbHelper = null;

    public SQLiteDatabase getDatabase(Context ctx) throws SQLException {
        if (DataBase == null) {
            dbHelper = PMDBHelper.getInstance(ctx);
            DBOpen();
        } else
            if(!DataBase.isOpen())
                DBOpen();
        return DataBase;
    }

    private void DBOpen() throws SQLException {
        DataBase = dbHelper.getWritableDatabase();
    }

    public void close(){
        if(DataBase != null)  DataBase.close();
    }

    protected void finalize() throws Throwable {
        try {
            close();
        } finally {
            super.finalize();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java android ondestroy

5
推荐指数
1
解决办法
4459
查看次数

Angular 2 ngOnDestroy未触发

早上好

我开发了一个小型的angular2-client-app,它有路由.路由创建如下:

app.routes.ts

import { provideRouter, RouterConfig } from '@angular/router';
import { ContactComponent } from './components/contact.component/contact.component';
import { Home } from './components/home.component/home.component';
import {StudentRoutes} from './components/student.component/student.routes';
import {LecturerRoutes} from "./components/lecturer.component/lecturer.routes";
import {ProcessRoutes} from "./components/process.component/process.routes";
import {SchoolRoutes} from "./components/school.component/school.routes";

export const routes: RouterConfig = [
    { path: '', component: Home },
    ...ProcessRoutes,
    ...StudentRoutes,
    ...LecturerRoutes,
    ...SchoolRoutes,
    { path: 'contact', component: ContactComponent }
];

export const APP_ROUTER_PROVIDERS = [
  provideRouter(routes)
];
Run Code Online (Sandbox Code Playgroud)

所以现在我的客户可以从组件到组件进行路由.

我的所有组件都扩展了一个父组件:base-component.ts

基component.ts

import { Component, Injectable, Inject, Input, Output, EventEmitter, OnDestroy, …
Run Code Online (Sandbox Code Playgroud)

routes loader ondestroy angular

5
推荐指数
1
解决办法
5871
查看次数

反正有没有检测应用程序关闭颤振?

我试图检测应用程序关闭时颤动。飞镖有什么办法吗?

我尝试使用WidgetsBindingObserver但 flutter 只能检测 AppLifecycleState 的pausedinactive(我相信在 IOS 上)、resumeddetached

class ChatScreenState extends State<ChatScreen> with WidgetsBindingObserver{
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);

    setState(() {
      _notification = state;
    });

    switch (state) {
      case AppLifecycleState.paused:
        print('paused');
        break;
      case AppLifecycleState.inactive:
        print('inactive');
        break;
      case AppLifecycleState.resumed:
        print('resumed');
        break;
      case AppLifecycleState.detached:
        print('detached');
        break;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试关闭我的应用程序,它的打印仅暂停

我想要做的是当应用程序在聊天屏幕上关闭时。我想在我的firestore上写点东西。但我找不到办法做到这一点。

编辑:我所说的关闭是指我自己故意关闭应用程序。(按主页键并向上滑动)

这是应用程序关闭时的终端日志

D/EGL_emulation( 9248): eglMakeCurrent: 0xdb81aba0: ver 3 0 (tinfo 0xdb80fa70)
I/flutter ( 9248): state = …
Run Code Online (Sandbox Code Playgroud)

lifecycle ondestroy flutter

5
推荐指数
1
解决办法
2100
查看次数