2011-09-27 22 views
7

से एक गतिविधि को समाप्त करना मेरे पास एक गतिविधि है जिसे मैं मॉडल के रूप में प्रदर्शित करता हूं जब फोन रिंग (फ़ोन ऐप पर)। जब निम्न में से कोई भी घटना होती है तो मैं गतिविधि को समाप्त करना चाहता हूं। पहला यह है कि अगर मैं गतिविधि के बाहर कहीं भी स्पर्श करता हूं (यह कोई समस्या नहीं है), दूसरा यह है कि रिंगिंग बंद हो जाती है। मैं प्रसारण रिसीवर में IDLE_STATE के लिए सुन रहा हूं लेकिन मुझे यकीन नहीं है कि जब मैं इसे देखता हूं तो गतिविधि पर खत्म कैसे करें। रिसीवर गतिविधि द्वारा पंजीकृत नहीं है लेकिन Manifest.xmlब्रॉडकास्ट रिसीवर

उत्तर

0

क्या होगा यदि आप गतिविधि से एक और प्रसारण रिसीवर पंजीकृत करते हैं। फिर, जब आप इसे मारना चाहते हैं, तो आपके द्वारा उल्लेखित प्रसारण रिसीवर से एक प्रसारण संदेश भेजें।

0

मैं वास्तव में IDLE_STATE को सुनने के लिए गतिविधि में फ़ोनस्टेट लिस्टनर जोड़ना समाप्त कर दिया।

12

में कोड लिखने आपके प्राप्त प्रसारण अब इस "com.hello.action" नाम के इरादे से एक और व्यापक डाली भेज देंगे

Intent local = new Intent(); 
local.setAction("com.hello.action"); 
sendBroadcast(local); 

अब गतिविधि में इस आशय को पकड़ने के साथ आप इसे समाप्त करना चाहते हैं और तो इस

public class fileNamefilter extends Activity { 
ArrayAdapter<String> adapter; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    IntentFilter filter = new IntentFilter(); 

    filter.addAction("com.hello.action"); 
    registerReceiver(receiver, filter); 

    } 
BroadcastReceiver receiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 

    } 
}; 

public void finish() { 
    super.finish(); 
}; 
} 

तरह super.finish() अपने रिसीवर की onReceive विधि पर कॉल इस गतिविधि खत्म हो जाएगा

संबंधित मुद्दे