Android BroadcastReceiver 启动时 - 当 Activity 处于后台时继续运行

2024-01-14

我正在监控传入的短信。

我的应用程序与BroadcastReceiver。然而,它正在从一个 Activity 中工作,并希望保留BroadcastReceiver一直运行(不仅仅是当我的活动运行时)。

我怎样才能实现这个目标?我已经查看了BroadcastReceiver但文档中提到的只是生命周期仅限于onReceive方法,而不是保留的生命周期BroadcastReceiver检查传入的短信。

我怎样才能让这种坚持下去呢?

Thanks


你需要定义一个receiver在带有操作名称的清单中android.intent.action.BOOT_COMPLETED.

<!-- Start the Service if applicable on boot -->
<receiver android:name="com.prac.test.ServiceStarter">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

确保还包含完整的启动权限。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

Use Service http://developer.android.com/reference/android/app/Service.html为了让任何事情持续下去。并使用接收器接收启动事件,以便在系统启动时再次重新启动服务。

启动时启动服务的代码。让服务完成您检查短信或任何您想要的工作。你需要做你的工作MyPersistingService你自己定义它。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class ServiceStarter extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent("com.prac.test.MyPersistingService");
        i.setClass(context, MyPersistingService.class);
        context.startService(i);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android BroadcastReceiver 启动时 - 当 Activity 处于后台时继续运行 的相关文章

随机推荐