অ্যান্ড্রয়েডে Context (প্রসঙ্গ) কী?
Context হলো অ্যাপ্লিকেশন বা অবজেক্টের বর্তমান অবস্থার প্রসঙ্গ। এটি নতুন তৈরি হওয়া অবজেক্টগুলোর বোঝাতে সাহায্য করে যে অ্যাপ্লিকেশনে কী ঘটছে। সাধারণত এটি আপনার প্রোগ্রামের অন্য অংশ (Activity, Package/Application) সম্পর্কে তথ্য পেতে ব্যবহৃত হয়।
নিচের প্রোগ্রামে আমরা ডাইনামিক্যালি TextView তৈরি করেছি এবং Context পাস করেছি। এই Context পরিবেশের তথ্য পেতে ব্যবহৃত হয়।
ধাপ ১: প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project নির্বাচন করুন।
ধাপ ২: লেআউট (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout"
android:orientation="vertical"
android:padding="16sp"
tools:context=".MainActivity">
</LinearLayout>
ধাপ ৩: মেইন এক্টিভিটি (src/MainActivity.java)
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.linearLayout);
// Application Context ব্যবহার
TextView textViewContext = new TextView(getApplicationContext());
textViewContext.setTextSize(30);
textViewContext.setText("Application Context");
textViewContext.setTextColor(Color.RED);
// Activity Context ব্যবহার (this)
TextView textViewActivityContext = new TextView(this);
textViewActivityContext.setTextSize(30);
textViewActivityContext.setText("Activity Context");
linearLayout.addView(textViewContext);
linearLayout.addView(textViewActivityContext);
}
}
ধাপ ৪: মেনিফেস্ট (androidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Context-এর ধরন ও ব্যবহারিক পার্থক্য
- Application Context (
getApplicationContext()): পুরো অ্যাপ্লিকেশনের লাইফসাইকেলের সাথে বাঁধা। সিঙ্গলটন প্যাটার্ন, লাইব্রেরি ইনিশিয়ালাইজেশন, শেয়ারড প্রিফারেন্স ইত্যাদির জন্য উপযুক্ত। - Activity Context (
thisবাActivityName.this): বর্তমান এক্টিভিটির লাইফসাইকেলের সাথে বাঁধা। UI অপারেশন, ডায়ালগ, টোস্ট, লেআউট ইনফ্লেটারের জন্য ব্যবহার করুন।
সতর্কতা: Activity Context ধরে রাখলে মেমোরি লিক হতে পারে (যেমন static ভেরিয়েবলে বা ব্যাকগ্রাউন্ড থ্রেডে)।
ফলাফল
অ্যাপ্লিকেশন রান করলে স্ক্রিনে "Application Context" এবং "Activity Context" দুটি টেক্সট দেখাবে।
