简体   繁体   English

BroadcastReceiver中的Android onReceive无法正常工作

[英]Android onReceive in BroadcastReceiver not working

I added a receiver to listen when app is installed. 我添加了一个接收器,以在安装应用程序时收听。 But it is not working. 但这是行不通的。 Here is my code in AndroidManifest.xml 这是我在AndroidManifest.xml中的代码

 <receiver android:enabled="true" 
   android:exported="true"
   android:name="com.bsp.iqtest.reiceiver.IQTestReceiver">
   <intent-filter>

     <action android:name="android.intent.action.PACKAGE_ADDED" />
     <action android:name="android.intent.action.PACKAGE_REPLACED" />
     <data android:scheme="package"/>
   </intent-filter>
</receiver>

Here is my code in MainActivity (launcher activity) , function onCreate. 这是我在MainActivity(启动器活动)函数onCreate中的代码。

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   IQTestReceiver br = new IQTestReceiver();
   IntentFilter intentFilter = new IntentFilter();
   intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
   intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
   intentFilter.addDataScheme("package");
   registerReceiver(br, intentFilter);
}

Here is my code in IQTestReceiver (this class is written in other file) 这是我在IQTestReceiver中的代码(此类是在其他文件中编写的)

public class IQTestReceiver extends BroadcastReceiver {
  public IQTestReceiver() {
  }
  @Override
  public void onReceive(Context context, Intent intent) {
    String packageName=intent.getData().getEncodedSchemeSpecificPart();
    Log.e("HELLO",packageName);
  }
}

I set a breakpoint in onReceive function , but it doesn't run when i debug. 我在onReceive函数中设置了一个断点,但是在调试时它不会运行。

Thanks for your helping. 感谢您的帮助。

You can not receive PACKAGE_ADDED or PACKAGE_REPLACED for your own app, if that is what you're trying. 如果您要尝试的是自己的应用,则无法收到PACKAGE_ADDEDPACKAGE_REPLACED

"Broadcast Action: A new application package has been installed on the device. The data contains the name of the package. Note that the newly installed package does not receive this broadcast ." “广播操作:设备上已安装了新的应用程序软件包。数据包含该软件包的名称。 请注意,新安装的软件包不会收到此广播 。”

See http://developer.android.com/reference/android/content/Intent.html 参见http://developer.android.com/reference/android/content/Intent.html

set your broadcasrt in manifest like this 像这样在清单中设置您的广泛

 <receiver
            android:name=".IQTestReceiver"
            android:exported="true"
            android:enabled="true">

            <intent-filter>
                <action android:name="check_values"/>

            </intent-filter>

        </receiver>

and send the broadcast like this..... Intent it1=new Intent(Intent.ACTION_USER_PRESENT); it1.setAction("check_values"); it1.putExtra("data_key1",message); sendBroadcast(it1); 然后像这样发送广播..... Intent it1=new Intent(Intent.ACTION_USER_PRESENT); it1.setAction("check_values"); it1.putExtra("data_key1",message); sendBroadcast(it1); Intent it1=new Intent(Intent.ACTION_USER_PRESENT); it1.setAction("check_values"); it1.putExtra("data_key1",message); sendBroadcast(it1);

and in on receive would be like this.... 并在接收时将是这样...

  @Override
        public void onReceive(Context context, Intent intent)
        {
           data1=intent.getStringExtra("data_key1");
           System.out.println("ffffff11" + data1);
      }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android BroadcastReceiver onReceive()未触发 - Android BroadcastReceiver onReceive() not triggered Android BroadcastReceiver onReceive NullReference - Android BroadcastReceiver onReceive NullReference Android:未触发BroadcastReceiver onReceive回调 - Android: BroadcastReceiver onReceive Callback not Triggered 在Android Studio中调试Android BroadcastReceiver onReceive()方法 - Debugging Android BroadcastReceiver onReceive() method in Android Studio Android BroadcastReceiver onReceive() 在 android 4.0 上调用了两次 - Android BroadcastReceiver onReceive() called twice on android 4.0 如何从Android中的另一个BroadcastReceiver的onReceive调用onReceive? - How to call onReceive from onReceive of another BroadcastReceiver in Android? Android BroadcastReceiver onReceive 更新 MainActivity 中的 TextView - Android BroadcastReceiver onReceive Update TextView in MainActivity Android,BroadCastReceiver中的onReceive被多次调用 - Android, onReceive in BroadCastReceiver is being called multiple times Android:如何等待IntentService for BroadcastReceiver onReceive方法 - Android: How to wait IntentService for BroadcastReceiver onReceive method 从Android中的BroadcastReceiver的onReceive()启动应用程序 - Launching an application from onReceive() of BroadcastReceiver in Android
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM