纠结的人如何做决定了好久,还是决定入um2

android 纠结的ContentObserver - ITeye问答
公司的项目用到了ContentObserver,开始用的时候好用,今天调试突然发现悲剧了
ContentObserver里面的onChange方法根本不执行~!
实在无解做了个小例子发现有用。。。
小弟加班加的脑子实在不转了,求各位哥哥姐姐大发慈悲,救小弟于水深火热之中。。。
源码如下:
package cn.intwork.um2.
import android.app.A
import android.app.AlertD
import android.content.ContentR
import android.content.DialogI
import android.database.ContentO
import android.database.C
import android.database.MergeC
import android.os.B
import android.provider.CallL
import android.util.L
import android.view.KeyE
import android.view.V
import android.view.View.OnClickL
import android.view.W
import android.widget.AdapterV
import android.widget.AdapterView.OnItemClickL
import android.widget.AdapterView.OnItemLongClickL
import android.widget.B
import android.widget.ListV
import cn.intwork.um2.R;
import cn.intwork.um2.adapter.CallLogA
import cn.intwork.um2.data.CallLogDBA
import cn.intwork.um2.data.MyA
* 通话记录界面
* @author www
public class CallLogActivity extends Activity {
private MyApp myA
private CallLogA
private CallLogDBAdapter dbA
private CallLogObserver myO
private Cursor myC
private ListView callLogL
private int currentTab = 1;
private ContentResolver myR
private Cursor[]
private boolean dataChanged =
private boolean activityStoped =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myApp = (MyApp) getApplication();
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.calllog);
dbAdapter = new CallLogDBAdapter(this);
Button allTab = (Button) findViewById(R.id.allTab_callLog);
Button missedTab = (Button) findViewById(R.id.missedTab_callLog);
Button deleteAll = (Button) findViewById(R.id.deleteAll_callLog);
callLogList = (ListView) findViewById(R.id.callLogList_callLog);
myResolver = getContentResolver();
cursors = new Cursor[2];
myObserver = new CallLogObserver();
dbAdapter.open();
queryAll();
cursors[0].registerContentObserver(myObserver);
cursors[1].registerContentObserver(myObserver);
startManagingCursor(cursors[0]);
startManagingCursor(cursors[1]);
initList();
startManagingCursor(myCursor);
Log.v("mylog", "create init");
allTab.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentTab != 1) {
cursors[0].unregisterContentObserver(myObserver);
cursors[1].unregisterContentObserver(myObserver);
queryAll();
cursors[0].registerContentObserver(myObserver);
cursors[1].registerContentObserver(myObserver);
initList();
Log.v("mylog", "allclick init");
currentTab = 1;
missedTab.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentTab != 2) {
cursors[0].unregisterContentObserver(myObserver);
cursors[1].unregisterContentObserver(myObserver);
queryMissed();
cursors[0].registerContentObserver(myObserver);
cursors[1].registerContentObserver(myObserver);
initList();
Log.v("mylog", "missedclick init");
currentTab = 2;
deleteAll.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(CallLogActivity.this)
.setTitle(R.string.prompt)
.setMessage(R.string.delete_all_calllog_prompt)
.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dbAdapter.deleteAllData();
myResolver.delete(
CallLog.Calls.CONTENT_URI,
null, null);
}).setNegativeButton(R.string.cancel, null)
callLogList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& arg0, View arg1, int arg2,
long arg3) {
callLogList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView&?& arg0, View arg1,
int arg2, long arg3) {
final cn.intwork.um2.data.CallLog callLog = adapter.callLogList
.get(arg2);
AlertDialog.Builder builder = new AlertDialog.Builder(
CallLogActivity.this);
builder.setTitle(R.string.prompt);
if (callLog.type() & 4) {
builder.setMessage(R.string.delete_system_calllog_prompt);
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
myResolver
.delete(CallLog.Calls.CONTENT_URI,
CallLog.Calls.NUMBER
+ "=? and "
+ CallLog.Calls.TYPE
+ "=? and "
+ CallLog.Calls.DATE
new String[] {
callLog.num(),
String.valueOf(callLog
String.valueOf(callLog
.date()) });
builder.setMessage(R.string.delete_calllog_prompt);
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dbAdapter.deleteOneData(callLog.num(),
callLog.type(), callLog.date());
builder.setNegativeButton(R.string.cancel, null).show();
Log.v("mylog", "calllog onCreate");
protected void onResume() {
super.onResume();
myApp.currentActivity =
Log.v("mylog", "calllog onResume");
protected void onPause() {
super.onPause();
Log.v("mylog", "calllog onPause");
protected void onRestart() {
super.onRestart();
if (dataChanged && activityStoped) {
refresh();
activityStoped =
Log.v("mylog", "calllog onRestart");
protected void onStart() {
super.onStart();
// dbAdapter.open();
// queryAll();
// cursors[0].registerContentObserver(myObserver);
// cursors[1].registerContentObserver(myObserver);
// initList();
// Log.v("mylog","start init");
Log.v("mylog", "calllog onStart");
protected void onStop() {
super.onStop();
activityStoped =
Log.v("mylog", "calllog onStop");
protected void onDestroy() {
super.onDestroy();
cursors[0].unregisterContentObserver(myObserver);
cursors[1].unregisterContentObserver(myObserver);
stopManagingCursor(cursors[0]);
stopManagingCursor(cursors[1]);
stopManagingCursor(myCursor);
cursors[0].close();
cursors[1].close();
myCursor.close();
dbAdapter.close();
Log.v("mylog", "calllog onDestroy");
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return super.dispatchKeyEvent(event);
private void initList() {
myCursor = new MergeCursor(cursors);
adapter = new CallLogAdapter(CallLogActivity.this, myCursor);
callLogList.setAdapter(adapter);
private void queryAll() {
cursors[0] = dbAdapter.queryAllData();
cursors[1] = myResolver.query(CallLog.Calls.CONTENT_URI,
new String[] { CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER,
CallLog.Calls.TYPE, CallLog.Calls.DURATION,
CallLog.Calls.DATE }, null, null,
CallLog.Calls.DEFAULT_SORT_ORDER);
private void queryMissed() {
cursors[0] = dbAdapter.queryAllMissed();
cursors[1] = myResolver.query(CallLog.Calls.CONTENT_URI,
new String[] { CallLog.Calls.CACHED_NAME, CallLog.Calls.NUMBER,
CallLog.Calls.TYPE, CallLog.Calls.DURATION,
CallLog.Calls.DATE }, CallLog.Calls.TYPE + "=3", null,
CallLog.Calls.DEFAULT_SORT_ORDER);
private void refresh() {
if (currentTab == 1) {
queryAll();
queryMissed();
initList();
dataChanged =
private class CallLogObserver extends ContentObserver {
public CallLogObserver() {
super(null);
public void onChange(boolean selfChange) {
super.onChange(selfChange);
dataChanged =
if (!activityStoped) {
refresh();
目前还没有答案
已解决问题
未解决问题熊湘忆还在纠结穿不穿秋裤喜欢的音乐 - 歌单 - 网易云音乐
熊湘忆还在纠结穿不穿秋裤喜欢的音乐
播放:5937次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:急急急!!! 机器IPC 想入手耳机 纠结 ue tf10 与 威士顿 um2_百度知道
急急急!!! 机器IPC 想入手耳机 纠结 ue tf10 与 威士顿 um2
还有关于耳放和换线 需要耳放吗 什么型号性价比高 换线什么牌子好 谢谢了
忘记说了 我主要听流行 摇滚类的音乐
我有更好的答案
m2和Tf10,三频虽没有什么异军突起的方面,但很平衡,UM2是双单元,接的不好不如不接。这东西还是要自己做功课,别人推荐不一定适合自己。线这种东西是有了耳机和放最后考虑的东西,如果不加放,那么也是你熟悉了耳机的声音之后再根据自己觉得不满意的方面有针对性的换线。像高端一些的8芯线,海洋之心之类,否则还是UM2吧。耳放这种东西,如果楼主不是亲耳听过的话,一句话能不上就不上。以来加放携带会很麻烦,甚至最便宜的古河线之类都是有各自的特点的,不一定越贵越好。以楼主目前的状况,之后再考虑换线和加放吧,二来不一定适合楼主的口味。TF10比较挑放,如果单论硬素质TF10优于UM2,这体现在解析度和声音的分离度上。但TF10是两头翘,高低频比较突起,而中频实在一般。就这样的TF10来说乐感以及适用性也不及UM2 ,先直推。佩戴的舒适度以及价格都比TF10更有优势。TF10是3单元。我个人倒是感觉UM2更适合入手,再到女神线。除非楼主喜欢电子乐之类感情少,高低频刺激的乐曲,好吧,这两根塞子一直是被人们争论的对象
采纳率:56%
来自团队:
为您推荐:
其他类似问题
tf10的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Um2 e5c tf10好吧我又纠结了==【耳机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,647,832贴子:
Um2 e5c tf10好吧我又纠结了==收藏
给母亲保证过压岁钱就买一条耳机不乱花==于是纠结了纠结阿
苏宁易购耳机,官方授权,正品行货保证,买正品,就上苏宁易购网上商城!苏宁易购耳机,正品保障,支持货到付款,7*24小时1对1贴心服务!
作为你的父亲,我感到压力很大
um2得了= = 最稳当的,,,,,
你不觉得这三风格都不同么?
TF10个人无爱&E5C没听过&但手里有SCL5觉得直推性价比不高&UM2…赞钱上3X
彩妆还得1000呢,,楼主
压岁钱是多么幸福的东西T^T
所以才纠结…高中频都有爱…舒服的不白菜…白菜不舒服
主要现有条二手行货好成色但是不白菜的5c…所以越发纠结==
E5c就是用来上放的…
从110OHMS来看,,我觉得,,楼主的前端不够
大5要上放才出真实力……
TF10还是……别想好了
um2……稳重……哈……是阿,“第一耳可能觉得不怎么样,但你会慢慢喜欢上它的”
(要是我会入大5+放)
为什么别想踢飞? 风你说的那个是啥
回复:14楼价格
SE530吧。。。
踢飞是白菜跟高频与声场…油麻2是舒适与男声…5c单纯停产而且比较yy放后的样子
那就5c呗,,反正你高考完会巨大丰收
某风你还差我不二家呢……
楼主你主要听什么?
楼主听金属
等我定制到了吧…到时候决定出不出um2…
E5C+小四双修拉
um2给我加单元改模~
回复:24楼她小四卖给冰冰了
小四出了……窘
某风…你今怎么老抢我问题==
囧了个囧的
登录百度帐号查看: 4394|回复: 10
IE60德行 还是se215蓝色版 纠结中······(求帮助)
最近想入个耳塞,1000元左右。
平时就是听流行,男女都有。前端touch4.
开始看上IE60了,德行也就1000左右。但是在坛子里看到一些断线的尸体,非常纠结。
本人哈尔滨的,冬天·····(你们都懂那个线材),又看了se215蓝色版。
但是又害怕闷和暗还有听诊效果,所以请大家出个主意。
自己坐沙发
引用第1楼julyframus于 17:24发表的 :
UM2吧你好快·····,
感觉um2 有点超预算了。
不过还是谢谢
我有蓝的215不过也听过IE60 当我听IE60时瞬间感觉到了声场的存在
IE60是同学的只听了不到五分钟左右 只有一个感觉215绝对无法和60比
引用第4楼黄浩宁于 17:31发表的 :
我有蓝的215不过也听过IE60 当我听IE60时瞬间感觉到了声场的存在
IE60是同学的只听了不到五分钟左右 只有一个感觉215绝对无法和60比谢谢
问一句 你se215和你同学的IE60比那个佩戴舒服,听诊效果明不明显。
引用第4楼黄浩宁于 17:31发表的 :
我有蓝的215不过也听过IE60 当我听IE60时瞬间感觉到了声场的存在
IE60是同学的只听了不到五分钟左右 只有一个感觉215绝对无法和60比呵呵~~~~看了你说的,看来我买60没错,就是感觉有点暗。
ie60啊 德行的 比那个蓝色的215好,信我
引用第7楼一个人在沙滩于 17:42发表的 :
ie60啊 德行的 比那个蓝色的215好,信我好的 决定入IE60了
exk [s:5] [s:5] [s:5]
这个...起码ie60的定位应该要比215高...
虽然我两个都没有听过
Powered by

我要回帖

更多关于 对决定的事情投入感情 的文章

 

随机推荐