Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从任务管理器关闭应用程序后,广播接收器在棒棒糖中不工作_Java_Android_Xml - Fatal编程技术网

Java 从任务管理器关闭应用程序后,广播接收器在棒棒糖中不工作

Java 从任务管理器关闭应用程序后,广播接收器在棒棒糖中不工作,java,android,xml,Java,Android,Xml,这是广播接收机。这段代码在kitkat和jeallyBean中工作。在这种情况下,我们可以简单地接收传入消息的通知。当手机中出现任何消息时,它会显示通知 public class IncomingSms extends BroadcastReceiver { final SmsManager sms = SmsManager.getDefault(); Notification myNotication; NotificationManager nm; p

这是广播接收机。这段代码在kitkat和jeallyBean中工作。在这种情况下,我们可以简单地接收传入消息的通知。当手机中出现任何消息时,它会显示通知

    public class IncomingSms extends BroadcastReceiver {
    final SmsManager sms = SmsManager.getDefault();
    Notification myNotication;
    NotificationManager nm;
    public void onReceive(Context context, Intent intent) {
        nm = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        final Bundle bundle = intent.getExtras();
        Intent startServiceIntent = new Intent(context, MainActivity.class);

        try {

            if (bundle != null) {

                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                for (int i = 0; i < pdusObj.length; i++) {

                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                    String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                    String senderNum = phoneNumber;
                    String compnum=phoneNumber;
                    String message = currentMessage.getDisplayMessageBody();

                    Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);



                    int duration = Toast.LENGTH_LONG;
                    Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
                    toast.show();
                    if(senderNum.equals(compnum))
                    {

                        Toast.makeText(context,"Come in the loop",Toast.LENGTH_LONG).show();
                        Intent intent2 = new Intent(context,MainActivity.class);

                        PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent2, 0);

                        Notification.Builder builder = new Notification.Builder(context);

                        builder.setAutoCancel(true);
                        builder.setTicker("this is ticker text");
                        builder.setContentTitle("WhatsApp Notification");
                        builder.setContentText("You have a new message");
                        builder.setSmallIcon(R.drawable.pretty_bullet);
                        builder.setContentIntent(pendingIntent);
                        builder.setOngoing(true);
                        builder.setSubText("This is subtext...");   
                        builder.setNumber(100);
                        builder.build();

                        myNotication = builder.getNotification();
                        nm.notify(50, myNotication);
                    }
                } 
            } 

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception smsReceiver" +e);

        }
    }  
}
public class IncomingSms扩展广播接收器{
final smsmsmanager sms=smsmsmanager.getDefault();
通知我的通知;
通知经理nm;
公共void onReceive(上下文、意图){
nm=(NotificationManager)上下文
.getSystemService(上下文通知服务);
final Bundle=intent.getExtras();
Intent startServiceIntent=新的Intent(上下文,MainActivity.class);
试一试{
if(bundle!=null){
最终对象[]pdusObj=(对象[])bundle.get(“pdus”);
对于(int i=0;i
我在舱单上声明

<uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS"/>

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="ANDROID.PERMISSION.WRITE_SETTINGS"/>
    <receiver android:name=".IncomingSms">
            <intent-filter
                android:priority="1">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
    </receiver>


当应用程序从任务管理器关闭时,这不起作用。但它对菜豆有效。我想显示应用程序是打开还是关闭的通知。

请参见以下内容

我还认为你可能想了解一下如何设置优先级。请阅读以下内容:

AndroidManifestIntentFilter\u优先级

int AndroidManifestIntentFilter_优先级指定相对 处理特定意图的重要性或能力。对于接收者, 这控制执行它们以接收请求的顺序 广播(请注意,对于异步广播,此顺序为 忽略)。对于活动,这提供了有关 活动是处理意图;当多个活动与一个 意图和优先级不同,只有那些优先级较高的 优先级值将被视为匹配项

仅在您确实需要强制某些特定顺序时使用 接收广播,或希望强制将某个活动放置到 总是比别人更受欢迎。该值是单个整数,带有 数字越高越好

必须是整数值,例如“100”

这也可能是对资源的引用(在 “@[package:]type:name”)或主题属性(格式为 “?[package:[type:]name”)包含此类型的值

这对应于全局属性资源符号优先级

常量值:2(0x00000002)