让我们来看看下一个场景:
static
变量,假设它是一个int i = 0; activity
,并从活动service
启动onCreate()
,服务获得START_STICKY
标记。service
所做的就是使用TimerTask将当前秒写入应用程序类中的变量。
5.我退出活动START_STICKY
标志而重启服务。现在我有问题:
谢谢,对不起我糟糕的英语......
答案 0 :(得分:7)
tl; dr:是的,这是可能的。但是,<?php
// Database Connection
include "connection.php"; //Connect to Database
// Fetch Record from Database
$output = "";
$sql = mysql_query("select '$select' from'$from' where'$where'"
$columns_total = mysql_num_fields($sql);
// Get The Field Name
for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output .= '"'.$heading.'",';
}
$output .="\n";
// Get Records from the table
while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="\n";
}
// Download the file
$filename = "file.csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
exit;
?>
必须在其自己的流程中启动。
重要的是要意识到Android操作系统在内存不足时会杀死进程,而不是单个组件,例如{{ 1}}或Service
(see this answer)。
鉴于上述陈述,很明显Activities
只有在Services
包含在单独的进程中时才能独立存在Service
。否则,当它们的过程被破坏时,它们将被一起销毁。
现在考虑单独进程中存在Application
和Service
的情况。在Android中,进程在低内存情况下从最低优先级到最高优先级被破坏。优先顺序为:清空&lt;背景&lt;服务&lt;可见&lt;前景(see here)。因此,当Application
保持活着时(例如,如果您的应用程序在后台),您的Application
可能会被销毁,并且您的{{1}也可能当你的应用程序保持活动状态时应用程序将被销毁(应用程序位于前台)。
您可以通过在组件清单标记中定义android:process
属性来声明应用程序的任何组件(Activity,Service,ContentProvider等)在其自己的进程中运行。
来自Processes的官方文档:
默认情况下,同一应用程序的所有组件都在同一进程中运行,大多数应用程序不应更改此设置。但是,[...]每种类型的组件元素的清单条目 -
Service
,Service
,Activity
和Service
- 支持Receiver
属性可以指定应该运行该组件的进程。您可以设置此属性,以便每个组件在其自己的进程中运行,或者使某些组件共享进程,而其他组件则不共享。 [...]Provider
元素还支持android:process属性,用于设置适用于所有组件的默认值。
这与问题1的答案有关。
如果android:process
存在于与Application
相同的过程中,那么它们将被销毁并重新启动。
如果Service
作为Application
存在于单独的进程中,则它们是完全独立的进程,因此将在Android OS认为合适的情况下相互独立地销毁和重新启动。
答案 1 :(得分:2)
是的,有这样的情况,一般服务会在活动后被杀死,因为他们需要系统中的最后资源阅读Docs here操作系统是否会杀死应用程序,但不会杀死该应用程序 服务?
当系统重新启动服务时,将是应用程序 重新开始?
我不确定,但我认为没有,因为服务可以在没有应用程序参考的情况下生存
答案 2 :(得分:1)
Tomer Mor的答案不正确。
当Application
死亡时,您的Service
也会死亡。
您的Service
只会在Application
之后创建。
您可以通过记录他们的onCreate()
来观察自己。