سؤال

أرغب في الانتقال إلى الشاشة الرئيسية برمجياً في Android عندما ينقر المستخدم على الزر. كيف يمكن القيام بذلك؟

هل كانت مفيدة؟

المحلول

يمكنك القيام بذلك من خلال نية.

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

سيبدأ هذا النية تطبيق المشغل الذي حدده المستخدم. كن حذرًا مع هذا لأن هذا سيبدو وكأن تطبيقك قد تحطم إذا لم يتوقع المستخدم ذلك.

إذا كنت تريد أن تقوم هذا بإنشاء زر خروج من تطبيقك ، فيرجى قراءة هذه المقالة على أزرار الخروج في Android

نصائح أخرى

حل سطر واحد

moveTaskToBack(true); //activity.moveTaskToBack(true);

سوف يتصرف عند الضغط على زر الصفحة الرئيسية

إجابة يانوس عظيم.

الشيء الوحيد الذي أريد إضافته ، وهو وقت طويل جدًا للتعليق ، هو أنه يمكنك الذهاب إلى الشاشة الرئيسية دون الإشارة إلى النشاط الحالي.

يجب استدعاء رمز Janusz من نشاط أو جزء بسبب startActivity(),

للتغلب على هذا ، يمكنك تخزين مرجع ثابت إلى سياق التطبيقات في ملف التطبيق الخاص بك:

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

يمكنك الآن إرسال المستخدم إلى الشاشة الرئيسية للجهاز من أي فصل في التطبيق الخاص بك ، وليس فقط الأنشطة أو الشظايا أو الفئات الأخرى مع إشارة إلى النشاط الحالي (يمكنك أن تقرر ما إذا كان هذا شيئًا جيدًا أو سيئًا):

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);

من الروبوت المطور موقع

فيما يلي بعض الأمثلة على العمليات الأخرى التي يمكنك تحديدها على أنها موجودة باستخدام هذه المعلمات الإضافية:

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

أعلم أن هذا متأخر بعض الشيء ، لكنني واجهت أيضًا نفس المشكلة وهنا كيف حللت ذلك. العودة إلى الخاص بك MainActivity تحتاج إلى إضافة أعلام من الخروج Activity

    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

الآن عندما تضغط على زر العودة MainActivity النشط ، سوف يذهب إلى الشاشة الرئيسية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top