【问题标题】:how to get application context from non activity and finish();?如何从非活动和完成()中获取应用程序上下文;?
【发布时间】:2016-05-23 22:55:27
【问题描述】:

这是我的代码:

这是 HomeActivity.java:

public class HomeActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        session = new SessionManagement(getApplicationContext());
        session.checkLogin();

这是 SessionManagement.java:

public class SessionManagement {
    SharedPreferences pref;

    // Editor for Shared preferences
    SharedPreferences.Editor editor;

    // Context
    Context _context;

    public void checkLogin(){
        // Check login status
        if(!this.isLoggedIn()){

            // user is not logged in redirect him to Login Activity
            Intent i = new Intent(_context, LoginActivity.class);
            // Closing all the Activities
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            // Add new Flag to start new Activity
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            // Staring Login Activity
            _context.startActivity(i);
        }

    }
}

我正在尝试调用“finish();”在这里面: public void checkLogin(){ if(!this.isLoggedIn()){ 所以我可以关闭/finish(); HomeActivity.java 类。

我该怎么做?

【问题讨论】:

  • 我建议不要这样做。相反,在checkLogin() 中返回一个“布尔值”,然后将所有 startActivity 代码移动到 Activity 类本身。

标签: java android android-activity android-context activity-finish


【解决方案1】:

创建你的类作为应用程序的扩展,在我的例子中,我的类是:

package zillion;

import android.app.Application;
import android.content.Context;

/**
 * Created by SCM on 2017-02-17.
 */

public class Zillion extends Application {

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
    }

    public static Context getContext() {
        return mContext;
    }
}

在包含此自定义类的模块中,转到manifiest,并将应用名称定义为:

<application
        android:name=".Zillion"
</application>

然后,在您的其他班级中,将应用上下文称为:

Zillion.getContext()

【讨论】:

  • 那么我们如何在这种情况下finish
猜你喜欢
  • 2014-03-16
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多