0

如何重新启动与第一次创建相同的活动。我用 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);          
    }
}
4

2 回答 2

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);


       }
}
于 2014-09-10T05:18:19.550 回答
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);
    }

然后saveFirstTime(false)在你的活动中实现 onCreate();

于 2014-09-10T04:49:54.577 回答