با سلام خدمت دوستان عزیز. یه آموزش کاملا اختصاصی و کاربردی رو براتون تدارک دیدیم.
کلاس Application یکی از کلاسهای بسیار مهم و کاربردی توی اندروید هست. و کارهای زیادی رو شما میتونید با این کلاس انجام بدین.
وظیفه اصلی این کلاس آماده سازی متغیرها یا در واقع متدهایی از برنامه هست که به صورت سراسری تو کل پروژه میتونید ازشون استفاده کنید.
این کلاس بلافاصله بعد از اینکه برنامه لانچ بشه یعنی قبل از اینکه اکتیویتی از برنامه ساخته بشه ساخته میشه. نمونه بارزی که میشه مثال زد اینشیالایز کردن کتابخونه هایی مثه پوشه یا وان سیگنال یا اینجور کتابخونه هایی که قراره تو کل پروژه فعال باشه.
اما نحوه پیاده سازی. ابتدا توی جاوا که اکثرا میدونن به شکل زیر هست. یک کلاس که از Application مشتق شده ایجاد و اونو توی منیفست اضافه میکنیم.
import android.app.Application;
public class MyCustomApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
}
حالا توی منیفست با خصوصیت android:name توی تگ application اونو اضافه میکنیم
<application
android:name=".MyCustomApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
...>
و اما به مبحث اصلی که پیاده کردنش توی بیسیک هست میرسیم.
ابتدا یک کلاس بیسیک با نام مثلا myApp میسازیم از منوی project.
حالا کد زیر رو توی اون کپی میکنیم.
Public Sub onCreate
Log("onCreate")
End Sub
#If java
import android.app.Application;
public static class App extends Application {
@Override
public void onCreate() {
super.onCreate();
runSub("_onCreate".toLowerCase());
}
private void runSub(String sub){
try {
myapp.class.getMethod(sub,null).invoke(new myapp());
} catch (Exception e) {
BA.Log( e.toString());
}
}
}
#End If
تو کد بالا اومدیم و کلاس Application رو به صورت استاتیک توی کلاس بیسیک پیاده کردیم تا بتونیم ازش تو خود کلاس بیسیک استفاده کنیم.
واسه اینکه بتونیم سابهای بیسیک رو از توی کدهای جاوا اجرا کنیم اومدیم و از رفلکشن استفاده کردیم که در واقع تابع runSub میشه. دقت داشته باشین میتونید هر ساب دیگه ای رو هم پیاده کنید توی این کلاس و همینطور هر متدی از این کلاس رو میتونید توی کد جاوا پیاده و بازنویسی کنید. تو این لینک توضح کامل و متدهای کلاس application هست.
و اما مرحله آخر به منیفست میریم و به صورت زیر کلاس رو به برنامه معرفی میکنیم.
SetApplicationAttribute(android:name, ".myapp$App")
اول نقط بعد اسم کلاس بیسیک با حروف کوچیک و بعد حرف $ و بعد اسم کلاس جاوایی که تعریف کردیم. حالا کافیه برنامه رو اجرا کنید و میبینید که ساب onCreate اجرا و پیغام نمایش داده میشه.
امیدوارم که از این آموزش لذت و استفاده کافی رو ببرید.
موفق باشید