Tag: android context

如何引用其他课程的当前或主要活动

我经常发现自己需要访问需要引用某些活动的方法。 例如,要使用getWindowManager ,我需要访问一些Activity。 但是我经常使用这些方法的代码是在其他没有引用任何活动的类中。 到目前为止,我已经存储了对主要活动的引用,或者将一些活动的上下文传递给了类。 有没有更好的方法来做到这一点?

Android:ProgressDialog不显示

我正在尝试为Android应用程序创build一个ProgressDialog(只是一个简单的向用户显示正在发生的事情,没有button或任何东西),但我无法正确理解。 我已经通过论坛和教程以及SDK附带的示例代码,但无济于事。 这是我得到的: btnSubmit.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { (…) ProgressDialog pd = new ProgressDialog(MyApp.this); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setMessage("Working…"); pd.setIndeterminate(true); pd.setCancelable(false); // now fetch the results (…long time calculations here…) // remove progress dialog pd.dismiss(); 我也尝试添加pd.show(); 并在new ProgressDialog混淆了参数,导致什么都没有(除了所选参数将不起作用的错误),这意味着ProgressDialog不会出现。 该应用程序只是继续运行,就好像我从来没有添加对话框。 我不知道我是否在正确的位置创build了对话框,但是我把它移动了一下,但是这也没有帮助。 也许我在错误的情况下? 上面的代码在MyApp private ViewGroup _createInputForm()中。 任何提示是赞赏,

获取适配器中的android上下文

在Internet上find的许多代码示例中, context都是在适配器的构造函数中获得的。 这个上下文被用来让一个inflater在getView方法中膨胀视图。 我的问题是为什么要在构造函数中获取上下文时,可以很容易地获得上下文 LayoutInflater inflater; @Override public View getView(int position, View convertView, ViewGroup parent) { if(inflater == null){ Context context = parent.getContext(); inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } … … return convertView; } 还有没有什么理由不使用上述方法,因为直到现在我还没有使用它的任何问题。

在Android中将应用上下文保存到静态variables是否安全?

我知道在Android上使用静态variables是相当危险的,特别是如果你引用他们的活动。 但是,如果我有一个扩展Application的类(我们称之为“App”),那么引用这个类的实例是否安全? 如果是这样,任何其他类对应用程序上下文有任何引用也是安全的吗? 我的意思是,如果我有任何类的应用程序上下文的引用可以有内存泄漏? 目的是不pipe我在哪个范围内,我都可以获得对应用程序上下文的引用。 我认为这是安全的,因为如果系统closures了应用程序,那么静态variables也会一直到下一次应用程序再次启动,这会再次初始化静态variables。 另外,不是那么重要,但是如果我使用多个进程,我会在每个进程上获得与App类完全不同的引用吗? 作为代码的一个例子,以下是我正在考虑的内容: public class App extends Application { private static Context _appContext; @Override public void onCreate() { super.onCreate(); _appContext = this; } public static Context getAppContext() { return _appContext; } }

在非活动类中需要上下文

我的应用程序中有一些类需要调用需要Context作为参数的Android函数。 我没有它,因为这个类不是Activity类的子类。 解决这个问题的正确方法是什么? 将它作为parameter passing给每个通话? 在类实例化时传递它并保留它?

使用Android的getBaseContext,getApplicationContext或者使用Activity的“this”

我已经使用了这个问题了很多,并发现了什么时候使用getBaseContext , getApplicationContext或一个Activity自己的这个指针的许多不同的build议。 经常出现的三条规则似乎很有意义 – 对于上下文活动的长期引用,只要应用程序存在,就应该使用getApplicationContext,因为这存在 对于生命周期与其活动密切相关的环境,应该使用自己的活动环境( this ) 静态存储上下文指针只是非常谨慎(如果可能的话,根本不会) 假设这些都是正确的, getBaseContext的用法是什么 ? 我已经看到了很多例子,其中使用了新的意图 – Intent intent = new Intent(getBaseContext(), myClass.class); 与 – Intent intent = new Intent(this, myClass.class); 哪一个是正确的或者推荐的方法,为什么?

Android意图上下文混淆

有人可以向我解释这一点: Intent intent = new Intent(Context, AlarmReceiver.class); 我从来没有理解,我认真地认为,如果有人不尝试深入解释这一点,我永远不会。 这整个上下文对我来说是如此混乱。 有时它的工作原理如下: Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 有时它不会那样工作,但它只接受: Intent intent = new Intent(context, AlarmReceiver.class); 有时它的: Intent intent = new Intent(this, AlarmReceiver.class); 等等等等等等。 我了解上下文的基本知识,但有多less? 为什么日食会给我一次错误,而又一次罚款呢? 为什么我们有时需要申报上下文? : Context context; 我无法find适合所有情况的正确环境,我怎么知道在任何情况下都是正确的?

Android获取应用程序的“主页”数据目录

一个简单的问题,涉及应用程序写入内部存储器时的默认“主目录”目录。 默认情况下,所有创build的文件都由OS(2.2)放置在: /data/data/your.package/files 当读取文件时,通过openFileInput() , openFileOutput()保持正确的上下文时,使用相同的默认值。 但是,如果我需要检查文件的存在,例如,使用File类,我需要在构造函数中指定整个path。 我看到有Environment.getDataDirectory() (返回/data ), Environment.getRootDirectory() (返回/system )等,但没有关系到获取应用程序的“主目录”。 这不是一个大问题,但是我宁愿不要将完整path硬编码到我的应用程序文件中(如果有一些方法可以引用应用程序的“家”目录编程。

如何在非活动类中使用getSystemService?

我正在构build一个通过AlarmManager触发报警的应用程序。 我希望能够通过它自己的非活动类来调用Alarm,但由于我没有扩展Activity,所以我没有看到任何“上下文”。 这个概念混淆了我,我读过sdk文档。 我将如何去使用: alarmTest = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 在我的非活动class? 另外,我假设获取上下文将允许我在我的非活动类中使用SharedPrefs和Intents?

如何获得我的活动上下文?

我真的不知道这个东西是如何工作的,所以如果我有一些需要扩展Activity的类B的上下文的类B ,我该如何获取上下文? 我正在寻找一种更有效的方法,然后将上下文作为parameter passing给A类构造函数,因为如果A类将有数百万个实例,那么我们最终会得到数百万个冗余指针,而我们应该能够以某种方式只有一个地方和一个吸气function…