如何在第一次创建时启动活动

时间:2014-09-10 04:26:53

标签: android sms onstart

如何在第一次创建时再次启动相同的活动。我使用INTET再次启动活动。但如果用户在移动设备上按下主页按钮,则此功能无效。是否有另一种方式开始活动,因为它在背景中首次创建。请帮助我,我将非常感谢你。

private void sendNextMessage(){
    Log.i("Is there are sms sendNextMessage", thereAreSmsToSend()+"");
    if(thereAreSmsToSend()){
        Log.i("sendNextMessage mMessageSentParts", mMessageSentParts+"");
        Log.i("sendNextMessage mMessageSentTotalParts", mMessageSentTotalParts+"");
        Log.i("sendNextMessage mMessageSentCount", mMessageSentCount+"");
        Log.i("sendNextMessage Phone list", list_phone.get(mMessageSentCount)+"");
        sendSMS(list_phone.get(mMessageSentCount),list_MESSAGE_BODY.get(mMessageSentCount));
    }else{
        Toast.makeText(getBaseContext(), "All SMS have been sent",
                            Toast.LENGTH_SHORT).show();
        new AddNewCategory().execute();
        h.removeCallbacks(r);
        h.postDelayed(new Runnable() {
            public void run() {
                // I used this code to start activity again but if user press home button this intent not works .
                Intent i = new Intent();
                i.setClass(MainActivity.this, MainActivity.class);
                i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                startActivity(i);
                Log.e("Time", "60000 intent");
                h.removeCallbacks(r);
            }
        }, 30000);
        h.removeCallbacks(r);
        h.removeCallbacks(r);          
    }
}

2 个答案:

答案 0 :(得分:0)

如何使用带有布尔值的SharedPreferences;

上课:

private Context context;

public boolean saveFirsTime(boolean firstime) 
    {
        SharedPreferences sharedPreferences = getSharedPreferences();
        SharedPreferences.Editor editor = sharedPreferences.edit();         
        editor.putBoolean("FirstTime", firstime);                                       
        return editor.commit();
    }   

public boolean loadFirsTime() {
    SharedPreferences sharedPreferences = getSharedPreferences();       
    boolean firstimeMap = sharedPreferences.getBoolean("FirstTime", true);      
    return firstimeMap;
}
public boolean clearFirsTime() {
    SharedPreferences sharedPreferences = getSharedPreferences();
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.remove("FirstTime");

    return editor.commit();
}

private SharedPreferences getSharedPreferences() {
        return context.getSharedPreferences("SharedPrefereneces",Context.MODE_PRIVATE);
    }

然后在您的Activity onCreate();

中实施saveFirstTime(false)

答案 1 :(得分:0)

编写服务和广播接收器,如下所示:

此活动在重新启动时启动活动类似地,您可以编写调用哪个活动的事件:

public class BootStartUpReciever extends BroadcastReceiver {

       @Override
       public void onReceive(Context context, Intent intent) {
              // TODO: This method is called when the BroadcastReceiver is receiving

              // Start Service On Boot Start Up
              Intent service = new Intent(context, TestService.class);
              context.startService(service);

              //Start App On Boot Start Up
              Intent App = new Intent(context, MainActivity.class);
              App.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              context.startActivity(App);


       }
}