我在清单
中添加了接收器<receiver android:name=".PackageReceiver"
android:enabled="true">
<intent-filter android:priority="100">
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
这是我的BroadcastReceiver
public class PackageReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.e("noti", "sucess");
//Start Notification Service
Intent i = new Intent(context, NotificationService.class);
context.startService(i);
}}
...
当我安装此软件包时,它无效......
这个包没有活动。(只有服务和资源)
这是一个问题吗?
然后..
如何在没有活动的情况下调用此包中的BroadcastReceiver?
答案 0 :(得分:0)
您刚刚宣布并实施了一个BroadcastReceiver,但您还没有启动它,您需要一个入口点来启动您的接收器(活动或服务)
这是注册的代码
PackageReceiver packageReceiver= new PackageReceiver(this);
registerReceiver( packageReceiver, new IntentFilter("android.intent.action.PACKAGE_ADDED"));
答案 1 :(得分:0)
这是一个经常被问到的问题。
查看此Commonsware
blog。
Starting with 3.1 when applications are installed they are in a “stopped” state so they will not be able to run until the user explicitly launches them. Pressing Force Stop will return them to this state.
应用程序中需要有一个用户可以启动的活动组件。当您的活动开始后,您的BroadcastReceiver
将会被注册。