【问题标题】:Check if Activity was called within my App检查是否在我的应用程序中调用了 Activity
【发布时间】:2011-08-10 15:55:23
【问题描述】:

如何检查我的应用中是否调用了 Activity?

我的问题是,如果用户来自另一个应用程序并且我仍然在后台,我只想更新数据。

谢谢!

【问题讨论】:

    标签: android android-activity onresume


    【解决方案1】:

    一个可能的想法是反转该过程,即确定活动是否由您的应用启动。

    假设你有一个活动 A,你想在 onResume() 中找出你是否从你的另一个活动中回来。您应该能够使用 startActivityWithResult() 启动从 A 传出的所有其他活动,并在 onActivityResult() 中检查结果。由于 onActivityResult() 在 onResume() 之前调用,您可以在 onResume() 中设置要检查的布尔字段。

    所以,代码是:

    private static final int RANDOM_ACTION_CODE= 42;
    
    private Button fButton;
    
    private boolean returning= false;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        fButton= (Button) findViewById(R.id.button1);
        fButton.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
        Intent i= new Intent(this, SecondActivity.class);
        startActivityForResult(i, RANDOM_ACTION_CODE);
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        Toast.makeText(this, "returning = " + returning, Toast.LENGTH_LONG).show();
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RANDOM_ACTION_CODE)
            returning= true;
        else
            returning= false;
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用 onRestart 事件吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-10
        • 2013-09-16
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多