Android编程中如何在非activity类调用activity类的方法?

最近学习Android编程,建了一个子线程,想要在子线程实现新建一个文件,但是子线程没有继承activity类,无法调用openFileOutput这个函数,我就想了几个... 最近学习Android编程,建了一个子线程,想要在子线程实现新建一个文件,但是子线程没有继承activity类 ,无法调用openFileOutput这个函数,我就想了几个办法。
首先就是在activity中重写了openFileOutput这个函数,然后在子线程中new了一个主activity(类名叫test)类,在对象中调用这个方法。
然后就是子线程构造函数中,传入this指针在调用,也不行,我在网上找到了比如传递context参数的说法,但是android学的时间不长(才一周),不是很理解,希望大家能给我答疑解惑。
展开
 我来答
1219866500
推荐于2016-02-27 · TA获得超过1936个赞
知道小有建树答主
回答量:467
采纳率:50%
帮助的人:330万
展开全部
你在Activity里面new一个abc类的对象出来不就行了。[mw_shl_code=java,true]abc test = new abc(this);
[/mw_shl_code]
然后再想调用方法的地方调用啊。
[mw_shl_code=java,true]test.mainactivity.showDialog();[/mw_shl_code]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心中风情4
推荐于2016-06-05 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1076万
展开全部
类似这样既可:

public MainActivity extend Activity {
MyThread myThread;

public void onCreate() {
myThread = MyThread myThread(this);
}

class MyThread implements Runnable {
private Context mContext
public myThread(Context context) {
mContext = context;
}
public void run() {
context.openFileOutput

//....
}
}

}
追问
还是不行啊,context.openFileOutput(fileName, MODE_APPEND);报错,说是MODE_APPEND cannot be resolved to a variable。
追答
这个问题就与你提的问题没啥关系了,要如下方式使用:

mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7e60612
推荐于2018-03-14
知道答主
回答量:14
采纳率:0%
帮助的人:11.3万
展开全部
将context传给线程,这样线程就拥有了这个context的引用啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c5bcb7af742
2017-05-13 · TA获得超过2.2万个赞
知道小有建树答主
回答量:1.2万
采纳率:47%
帮助的人:593万
展开全部
看看是否因为你的activity是否配置了,如果没有配置是会直接报错的。而且可以贴出具体的错误信息来,看看哪里出了问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daojianqingcho
2013-09-05 · TA获得超过452个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:134万
展开全部
线程里新建文件为什么不用File类呢?何必非得用Activity里的方法。
追问
确实是可以,但是我主要是想知道在非activity类中如何使用activity方法,正好借这个问题咨询一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式