如何打开不是主要活动时,重新启动我的应用程序在安卓



我做了一个使用后台服务的应用程序,当用户点击特定的按钮(开始按钮)时,用户可以通过重启该应用程序并再次打开它来停止应用程序任务。然后用户可以通过点击停止按钮来停止应用程序。

我使用这个代码片段让应用程序关闭它的UI并返回到主屏幕,在此之前设置开始按钮在禁用模式…

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

不幸的是,当我再次打开我的应用程序时,我从不包含开始按钮和停止按钮的主活动开始,当我滑动到包含按钮的第二个活动时,我发现启动按钮启用了,即后台服务的前一个任务丢失了?? ?!!

有人能给我提供解决方案吗?

每次打开应用程序时,这些按钮都是默认启用的(除了那些从一开始就禁用的按钮)。

所以你需要保存这个状态来保持它的状态。在这里是如何保持和恢复状态。

你必须看看Android应用程序的生命周期,当你的应用程序进入后台,它会得到状态onPause()和后来的onStop(),你想要的是保存你的应用程序状态供以后使用,看看这个线程:在Android中保存活动状态我认为最重要的答案是你想要做的。

你必须先保存按钮的状态,然后再加载状态

您可以使用SharedPreferences来存储所需的活动。然后在MainActivity启动后检查它,以决定是否更改为新活动

//check when start app
public class MainActivity extends Activity{
    public static SharedPreferences sharedPreferences;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
    sharedpreferences = getSharedPreferences("WantedActivity", Context.MODE_PRIVATE);
        if (sharedPreferences.contains("SavedActivityName"))
        {
            if(sharedPreferences.getString("SavedActivityName","").equals( "ActivityName"))
            {
                Intent intent = new Intent(getApplicationContext(), ActivityName.class);
                startActivity(intent);
            }
        }
    }
}
//save wanted activity

SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString("SavedActivityName", "ActivityName");
    editor.commit();

相关内容

  • 没有找到相关文章

最新更新