Java Android:为什么在启动时创建片段之前不调用广播接收器?

Java Android:为什么在启动时创建片段之前不调用广播接收器?,java,android,android-fragments,Java,Android,Android Fragments,请原谅我的误解,但我正试图确定我的android设备何时从断电状态启动。当设备启动时,我能够成功地接收广播,但是,这是在创建活动和片段之后完成的 首先,这是我的代码: AndroidManifest.xml: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application .... <receiver android:na

请原谅我的误解,但我正试图确定我的android设备何时从断电状态启动。当设备启动时,我能够成功地接收广播,但是,这是在创建活动和片段之后完成的

首先,这是我的代码:

AndroidManifest.xml:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application

       ....

        <receiver android:name=".ui.BootCompleteReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

        ....

</application>
MainActivity.java:

public class MainActivity extends Activity
{
    private static final String TAG = "MyActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Toast.makeText(getBaseContext(), "MainActivity onCreate", Toast.LENGTH_SHORT).show();

        Toast.makeText(getBaseContext(), "MainActivity isRebooted = "
                + Singleton.getInstance().isRebooted, Toast.LENGTH_SHORT).show();

        setContentView(R.layout.activity_main);
    }
}
MainFragment.java:

public class MainFragment extends VerticalGridFragment
{

 @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Toast.makeText(getActivity(), "MAINFRAGMENT onCreate", Toast.LENGTH_SHORT).show();

    }

    ...
}
Singleton.java:

public class Singleton
{
    private static Singleton ourInstance = new Singleton();

    public static boolean isRebooted = false;

    // Private constructor to contain only one instance of a Singleton
    private Singleton()
    {

    }

    public static Singleton getInstance()
    {
        // If no instance of a Singleton exist, create one
        if (ourInstance == null)
        {
            ourInstance = new Singleton();
        }
        return ourInstance;
    }
}
在放入一些toast消息后,我看到MainActivity toast消息被称为first,它创建MainFragment。之后,当我从BroadcastReceiver接收到Toast消息时,片段被创建


是否可以在创建main片段之前先调用BroadcastReceiver?

也显示您的
Singleton.java
public class Singleton
{
    private static Singleton ourInstance = new Singleton();

    public static boolean isRebooted = false;

    // Private constructor to contain only one instance of a Singleton
    private Singleton()
    {

    }

    public static Singleton getInstance()
    {
        // If no instance of a Singleton exist, create one
        if (ourInstance == null)
        {
            ourInstance = new Singleton();
        }
        return ourInstance;
    }
}