ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

حل کردن مشکل برخورد Collision مربوط به Intent Filter

بسم الله الرحمن الرحیم

حل کردن مشکل برخورد (Collision) َمربوط به activityها 

فصل دوم-بخش  هفتم

در  بخش قبلی  شما یاد گرفتید که چطور  Elment  با  نام  <intent-filter>  می تواند   چگونگی اجرای  یک activity   توسط activity  دیگر را    تعیین می کند.

چه اتفاقی می افتد اگر یک  activity   دیگری (در همین  برنامه یا  برنامه دیگر) دارا ی نام  Filter  یکسانی  باشد؟

حال به همین برنامه  یک activity  دیگر  به نام activity3 را اضافه می کنیم. و لی نام inent Filter  آن  را با Activty  دوم  یکسان  می گذاریم.

در فایل AndroidManifest.xml  دستورات زیر را قرار  می دهیم.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MehrdadJavidi.usingintent"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:label=" Second Activity" >
<intent-filter>
<action android:name="com.MehrdadJavidi.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ThirdActivity"
android:label="Third Activity" >
<intent-filter>
<action android:name="com.MehrdadJavidi.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>

حال اگر دستور زیر را  اجرا  کنیم سیستم عامل  اندروید  پنجره  ی به شما نمایش می دهد و از شما خواسته می شود که یک activity را انتخاب کنید

startActivity(new Intent("com.MehrdadJavidi.SecondActivity"));

حل مشکل Collisionدر اندروید

و اگر Use by default for this action  را انتخاب کنیم activity  که انتخاب کردیم  دفعه های بعد  برای این برنامه  اجرا می شود. و دیگر این پنجره نمایش داده نمی شود.

برای از بین این پیش فرض ها  شما   باید به  قسمت Settings application مربوط به سیستم عامل اندروید  بروید و  سپس App->Manage Application  بروید. و سپس نام  برنامه را انتخاب کنید و زمانی که جزئیات برنامه نمایش داده شده Clear Default  را انتخا ب می  کنید.

مشکل Collisionدر اندروید

یاد آوری !!

در   فصل اول- بخش پنجم      بیان  کردیم که  package Name  برنامه   بهتر است  که  معکوس شده  Domain  باشد .  چون  نام  Domain   منحصر به فرد می باشد   دیگر  مشکل   Collision   به  وجود  نمی آید.

آموزش برنامه نویسی اندروید

نظرات (۰)

هيچ نظري هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید