मेरे आवेदन में केवल MainActivity के साथ ImageView है।

BroadcastReceiver काम करता है। जब मैं यूएसबी कनेक्ट करता हूं तो टोस्ट संदेश प्रदर्शित होता है।

अब, मुझे अपना एप्लिकेशन कम से कम शुरू करने की आवश्यकता है और एप्लिकेशन को केवल यूएसबी केबल कनेक्ट किया गया था।

BroadcastReceiver broadcast_reciever = new BroadcastReceiver() {

    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("usb_detect")) {
            Toast.makeText(arg0,"Atenção!",Toast.LENGTH_SHORT).show();
            finish();
            startActivity(getIntent());
            //startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER));
        }
    }
};

मेनिफेस्ट यहां है: https://i.stack.imgur.com/sa3Pe.jpg

1
Luiz Lorena 23 अक्टूबर 2018, 22:55

1 उत्तर

सबसे बढ़िया उत्तर

अपने आवेदन को अग्रभूमि में लाने के लिए, निम्नलिखित को onReceive() में जोड़ें:

Intent launchIntent = getPackageManager().
    getLaunchIntentForPackage("your.package.name");
startActivity(launchIntent);

यह एक नया Activity शुरू नहीं करेगा, यह केवल आपके आवेदन वाले मौजूदा कार्य को अग्रभूमि में लाएगा, चाहे वह किसी भी स्थिति में हो, जब इसे पृष्ठभूमि में ले जाया गया था।

साथ ही, अपने BroadcastReceiver से finish() को कॉल हटा दें। finish() का उपयोग केवल Activity पर किया जाता है।

0
David Wasser 24 अक्टूबर 2018, 11:23