我有一个数据库单例,我想在应用程序完成时对其调用.close()。
我可以在Application类中的onCreate()中对数据库调用.open(),但在哪里调用.close()呢?
通常,您应该在ondestroy()
或onstop()
中关闭数据库连接。onDestroy()
是在从内存中删除并销毁activity之前调用的。当您转到其他应用程序时,将调用onstop()
。这两种方法都有效,但ondestroy()
通常更好,因为onstop()
会减慢应用程序切换的速度。
更多信息:http://developer.android.com/training/basics/activity-lifecycle/starting.html
是的,我做的是寻找前景activity。每次前景activity死后,我可以减量。一旦我达到零并在那里停留一个合理数量的时间,我知道我是安全的关闭这样的资源。以这种方式在我的应用程序中进行虚拟生命周期回调。所以无论你有多少任务,也无论事情从哪里开始,这种方式都是有效的。如果你只能从一个地方运行和启动你的应用程序,并且一切都只能以一种单一的线性方式进行,那么是的,根activity方法也可以。
具体是这样的:
基本活动
public class BaseActivity extends Activity {
public void onResume() {
MyBaseApplicationType app = (MyBaseApplicationType)getApplicationContext();
app.incrementForegroundActivity();
}
public void onPause() {
MyBaseApplicationType app = (MyBaseApplicationType)getApplicationContext();
app.decrementForegroundActivity();
}
}
MyBaseApplication
public class MyBaseApplication extends Application {
private int mForegroundActivities;
private Handler mHandler;
public void onCreate() {
mHandler = new Handler();
}
public void decrementForegroundActivity() {
mForegroundActivities--;
if (mForegroundActivities == 0) {
mHandler.postDelayed(mRunnable, 1000 /*about a second*/);
}
}
public void incrementForegroundActivities() {
mForegroundActivities++;
}
private Runnable mRunnable = new Runnable() {
public void run() {
if (mForegroundActivities == 0) {
// Listeners of this broadcast can then clean up anything
// as needed.
Intent intent = new Intent("com.my.package.ACTION_BACKGROUNDED");
sendBroadcast(intent);
}
}
};
}
我正在尝试修复内存不足的问题,我想知道是否需要更改spark home文件夹中默认配置文件(
问题内容: 我们有一个Java服务器应用程序,该应用程序可以在许多计算机上运行,所有计算机都连接到Internet,其中一些位于防火墙后面。我们需要从一个中央站点远程更新JAR文件和启动脚本,而不会明显中断应用程序本身。 该过程必须无人值守且万无一失(即,由于不及时的互联网中断,我们无法中断应用程序)。 过去,我们使用各种外部脚本和实用程序来处理类似的任务,但是由于它们具有自己的依赖性,因此难
我想知道是否有办法知道一个应用程序(可以在后台关闭或打开)是否已经启动,只需单击: 通知(在通知中心)? 还是跳板上的应用程序图标? 谢谢
我知道有很多关于这个话题的文章,但我就是找不到正确的答案。 有没有办法知道用户何时收到远程通知以及用户何时在iOS8上点击了一个。我想知道这一点,因为当我收到它时,我想保存它,当用户点击它时,我想打开一些视图。 我找到了这个答案https://stackoverflow.com/a/16393957/1241217但问题是,当用户在应用程序中打开通知中心并单击其中一个时,该应用程序既不处于非活动状
以下是logcat中显示的错误。
我试图理解我们什么时候需要使用这个应用程序。在我们的node Express中使用 当我在网上搜索时,我在reddit上偶然发现了这个答案,它说明了应用程序之间的区别。获取和应用程序。使用 在此基础上,我总结了以下几点。 充当超级路由或中间件?这意味着它在? 此外,如果有人能添加更多关于app.use.的信息/练习,我将不胜感激