meldingsvenster verschijnt niet bij het verlaten van de app terwijl toast Android doet

Ik gebruik de code van de Bluetooth Chat-voorbeeldapplicatie. Ik wil dat de gebruiker de app verlaat, maar dat hij gegevens moet kunnen ontvangen. Dus als ik dit doe:

 case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
               //construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                mConversationArrayAdapter.add(mConnectedDeviceName+":  " + readMessage);
                /***************************ADDED***************************/
                System.out.println("Number is"+(int)(readMessage.charAt(0)));

                /***************************ADDED***************************/
                break;

Ik zie wel in de DDMS de println-instructie.

Als ik dit doe:

 case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
               //construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                mConversationArrayAdapter.add(mConnectedDeviceName+":  " + readMessage);
                /***************************ADDED***************************/
                System.out.println("Number is"+(int)(readMessage.charAt(0)));
               Toast.makeText(getApplicationContext(), "received!! "
                        + mConnectedDeviceName, Toast.LENGTH_SHORT).show();

                /***************************ADDED***************************/
                break;

Ik zie het toastbericht zelfs als ik de applicatie verlaat en ik in andere apps ben.

Tot slot wat ik echt wil, is of mijn app niet actief is wanneer ik een specifieke gegevens ontvang, een waarschuwingsdialoog open, en als ik op ja druk bijvoorbeeld iets maak (ik wil een http-verzoek maken op ja en nee worden overgezet naar mijn app.)

Dit is mijn code:

 case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
               //construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                mConversationArrayAdapter.add(mConnectedDeviceName+":  " + readMessage);
                /***************************ADDED***************************/

                new AlertDialog.Builder(getApplicationContext())
                .setTitle("Title")
                .setMessage("Message")
                .setPositiveButton("Yes",
                 new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
                          //make http request
                }
             })
                .setNegativeButton("No",
                          new DialogInterface.OnClickListener() {
                            //@Override
                              public void onClick(DialogInterface dialog, int which) {
                                   //open my app
                               }

                          }).show();


                /***************************ADDED***************************/
                break;

En in dat geval krijg ik een force close als ik mijn app verlaat en gegevens ontvang. Ik veronderstel dat het argument getApplicationContext verkeerd is, maar ik weet niet wat ik moet gebruiken.

Sollution: in plaats daarvan heb ik een melding gebruikt.

1
Ik heb in plaats daarvan een melding gebruikt.
toegevoegd de auteur ghostrider, de bron
Ik heb dit probleem gehad waarbij ik aan het einde van de activiteit een AlertDialog wilde laten verschijnen. Dat doet het, maar als ik vroeg vertrek of vertrek. Ik krijg een force close omdat de activiteit is gesloten, maar de AlertDialog wil opduiken. De beste manier is om een ​​Toast-bericht of -kennisgeving te hebben.
toegevoegd de auteur Kurty, de bron

Geen antwoorden

0