我的应用程序以这种方式查看K9客户端中收到的电子邮件...
1)AndroidManifest:
<receiver
android:name="com.myapp.K9MailReceiver">
<intent-filter>
<action
android:name="com.fsck.k9.intent.action.EMAIL_RECEIVED" />
<data
android:scheme="email" />
</intent-filter>
</receiver>
2)我的广播接收者:
public class K9MailReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final Intent serviceIntent = new Intent(context, MyService.class);
serviceIntent.putExtra(Prepare.MAIL, intent.getExtras());
context.startService(serviceIntent);
}
}
我的问题: Android是否有可能决定杀死我的K9MailReceiver类以释放内存?如果是,如何防止这种情况?
答案 0 :(得分:2)
接收器仅在被调用时运行,所以没有。确保运行时间不超过5秒。
但是您的服务可能随时被杀死。您可以通过发布持续通知来确保其保持运行,但您可能不应该这样做。如果它在低内存情况下被终止,它将在稍后重新启动。
答案 1 :(得分:2)
任何BroadcastReceiver
都不会在内存中出现。它在收到intent时被实例化,并在onReceive()
方法完成后被杀死。