آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تعریف broadcastreceiver در اکتیویتی

116236  8 سال پیش  8 سال پیش
0 0

چطوری میشه یک برد کست رسیور رو داخل اکتیویتی تعریف کرد؟

توضیح: من broadcastreceiver رو به صورتی لازم دارم که فقط وقتی برنامه درحال اجراس عمل کنه + تغییراتی هم روی UI اعمال کنه. بهترین راهی که به ذهنم رسیده این بود که اون رو داخل خود اکتیوتی تعریف کنم (که البته امکان پذیر هم هست). ولی هرکاری میکنم برنامه کرش میکنه.

کدهای داخل منیفست به این صورته:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ir.hamrahafzar.app.taxi_location"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        
        android:name=".G"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/myTheme" >
        <activity
            android:name=".ActivityStart"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name=".ActivityMain"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
          >
        
        </activity>

        <receiver android:name=".UpdateReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
        </receiver>
        
        <receiver android:name=".receiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

 

اینم کدهایی که استفاده کردم:

    BroadcastReceiver     receiver;
    IntentFilter          filter;

 

        filter = new IntentFilter();
        filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        receiver = new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {
                Toast.makeText(getApplicationContext(), "received", Toast.LENGTH_SHORT);
            }
        };

 

    @Override
    protected void onResume() {
        registerReceiver(receiver, filter);
        super.onResume();
    }


    @Override
    protected void onPause() {
        unregisterReceiver(receiver);
        super.onPause();
    }

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .