এর ব্যবহার সম্পর্কে আমি যা পেয়েছি তা এখানে context
:
1)। মধ্যে একটি Activity
নিজেই, ব্যবহার this
লেআউট এবং মেনু বৃদ্ধি, রেজিস্টার প্রসঙ্গ মেনু, উইজেট শুরু করতে গিয়ে জন্য, অন্যান্য কার্যক্রম শুরু, নতুন তৈরি Intent
একটি মধ্যে Activity
শুরু করতে গিয়ে পছন্দ, বা অন্যান্য পদ্ধতি একটি পাওয়া যায়, Activity
।
স্ফুটনা বিন্যাস:
View mView = this.getLayoutInflater().inflate(R.layout.myLayout, myViewGroup);
স্ফীত মেনু:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
this.getMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
প্রসঙ্গ মেনু নিবন্ধন করুন:
this.registerForContextMenu(myView);
ইনস্ট্যান্ট উইজেট:
TextView myTextView = (TextView) this.findViewById(R.id.myTextView);
একটি শুরু করুন Activity
:
Intent mIntent = new Intent(this, MyActivity.class);
this.startActivity(mIntent);
পছন্দগুলি ইনস্ট্যান্ট করুন:
SharedPreferences mSharedPreferences = this.getPreferenceManager().getSharedPreferences();
2)। অ্যাপ্লিকেশন-বিস্তৃত শ্রেণীর জন্য, getApplicationContext()
প্রয়োগের আজীবন এই প্রসঙ্গটি বিদ্যমান হিসাবে ব্যবহার করুন ।
বর্তমান অ্যান্ড্রয়েড প্যাকেজের নাম পুনরুদ্ধার করুন:
public class MyApplication extends Application {
public static String getPackageName() {
String packageName = null;
try {
PackageInfo mPackageInfo = getApplicationContext().getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), 0);
packageName = mPackageInfo.packageName;
} catch (NameNotFoundException e) {
// Log error here.
}
return packageName;
}
}
অ্যাপ্লিকেশন-বিস্তৃত শ্রেণিতে বাঁধুন:
Intent mIntent = new Intent(this, MyPersistent.class);
MyServiceConnection mServiceConnection = new MyServiceConnection();
if (mServiceConnection != null) {
getApplicationContext().bindService(mIntent, mServiceConnection, Context.BIND_AUTO_CREATE);
}
3)। শ্রোতাদের এবং অন্যান্য ধরণের অ্যান্ড্রয়েড ক্লাসগুলির জন্য (যেমন কনটেক্সটসবার্সার), একটি প্রসঙ্গে প্রতিস্থাপন ব্যবহার করুন:
mContext = this; // Example 1
mContext = context; // Example 2
যেখানে this
বা context
শ্রেণীর প্রসঙ্গ (ক্রিয়াকলাপ ইত্যাদি)।
Activity
প্রসঙ্গ প্রতিস্থাপন:
public class MyActivity extends Activity {
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
}
}
শ্রোতার প্রসঙ্গে বিকল্প:
public class MyLocationListener implements LocationListener {
private Context mContext;
public MyLocationListener(Context context) {
mContext = context;
}
}
ContentObserver
প্রসঙ্গ প্রতিস্থাপন:
public class MyContentObserver extends ContentObserver {
private Context mContext;
public MyContentObserver(Handler handler, Context context) {
super(handler);
mContext = context;
}
}
4)। জন্য BroadcastReceiver
(inlined / এমবেডেড রিসিভার সহ) রিসিভারের নিজস্ব প্রসঙ্গের ব্যবহার করুন।
বাহ্যিক BroadcastReceiver
:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(Intent.ACTION_SCREEN_OFF)) {
sendReceiverAction(context, true);
}
private static void sendReceiverAction(Context context, boolean state) {
Intent mIntent = new Intent(context.getClass().getName() + "." + context.getString(R.string.receiver_action));
mIntent.putExtra("extra", state);
context.sendBroadcast(mIntent, null);
}
}
}
অন্তর্ভুক্ত / এম্বেড করা BroadcastReceiver
:
public class MyActivity extends Activity {
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final boolean connected = intent.getBooleanExtra(context.getString(R.string.connected), false);
if (connected) {
// Do something.
}
}
};
}
5)। পরিষেবাদির জন্য, পরিষেবার নিজস্ব প্রসঙ্গ ব্যবহার করুন।
public class MyService extends Service {
private BroadcastReceiver mBroadcastReceiver;
@Override
public void onCreate() {
super.onCreate();
registerReceiver();
}
private void registerReceiver() {
IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction(Intent.ACTION_SCREEN_OFF);
this.mBroadcastReceiver = new MyBroadcastReceiver();
this.registerReceiver(this.mBroadcastReceiver, mIntentFilter);
}
}
6)। টোস্টের জন্য, সাধারণত ব্যবহার করুন getApplicationContext()
, তবে যেখানে সম্ভব, কোনও ক্রিয়াকলাপ, পরিষেবা ইত্যাদি থেকে পাস করা প্রসঙ্গটি ব্যবহার করুন
আবেদনের প্রসঙ্গটি ব্যবহার করুন:
Toast mToast = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG);
mToast.show();
উত্স থেকে পাস করা প্রসঙ্গ ব্যবহার করুন:
public static void showLongToast(Context context, String message) {
if (context != null && message != null) {
Toast mToast = Toast.makeText(context, message, Toast.LENGTH_LONG);
mToast.show();
}
}
এবং সর্বশেষে, getBaseContext()
অ্যান্ড্রয়েডের ফ্রেমওয়ার্ক বিকাশকারীদের পরামর্শ অনুযায়ী ব্যবহার করবেন না ।
আপডেট:Context
ব্যবহারের উদাহরণ যুক্ত করুন ।