所以我有一个Class,在它的init函数中,我订阅了一个摄像头,它的回调函数是在我的类中创建的。即:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarLayout"
android:layout_width="match_parent"
android:layout_height="256dp"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:collapsedTitleGravity="right|center"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="right|bottom"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
<ImageView
android:id="@+id/productImage_Single_Suggest"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
android:src="@drawable/loginbg_opt"
app:layout_collapseMode="pin" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="7dp"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:src="@drawable/user"
app:layout_anchor="@id/appbarLayout"
app:layout_anchorGravity="bottom|right"
/>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="50dp">
<LinearLayout
android:id="@+id/product_name_suggest_single"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/items"
android:gravity="right"
android:orientation="horizontal"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="باقله تبریزی اعلا "
android:textAlignment="gravity"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="right"
android:text="نام محصول:"
android:textAlignment="gravity"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/product_code_suggest_single"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/product_name_suggest_single"
android:layout_marginTop="10dp"
android:background="@drawable/items"
android:gravity="right"
android:orientation="horizontal"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="2122"
android:textAlignment="gravity"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="right"
android:text="کد محصول"
android:textAlignment="gravity"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/product_count_suggest_single"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/product_code_suggest_single"
android:layout_marginTop="10dp"
android:background="@drawable/items"
android:gravity="right"
android:orientation="horizontal"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="1111"
android:textAlignment="gravity"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="right"
android:text="موجودی انبار:"
android:textAlignment="gravity"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/txtSuggestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/product_count_suggest_single"
android:layout_marginTop="10dp"
android:background="@drawable/items"
android:gravity="right"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="right"
android:text="پیشنهاد"
android:textAlignment="gravity"
android:textSize="20sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/roundcorner"
android:padding="10dp"
android:text=" ژنرال ارتش ترکیه روز چهارشنبه ۳۰ تیرماه رسما به تلاش برای انجام کودتا در این کشور متهم شدند. همزمان، ۲۶۲ قاضی و دادستان دادگاههای نظامی و ۹۰۰ پلیس در آنکارا پایتخت ترکیه نیز از سمت خود تعلیق شدهاند.
شش هزار و ۵۰۰ نفر دیگر از کارکنان وزارت آموزش ملی این کشور نیز از سمتهای خود تعلیق شدهاند. این اقدام یک روز پس از اخراج بیش از ۱۵ هزار معلم از سوی این وزارتخانه صورت میگیرد.
دولت ترکیه روز سهشنبه همچنین مجوز تدریس ۲۱ هزار معلم شاغل در بخش خصوصی را لغو کرده بود.
با احتساب این ارقام، تاکنون بیش از ۶۰ هزار قاضی، معلم، سرباز، پلیس و کارمند دولت از کار خود تعلیق شدهاند." />
</LinearLayout>
<LinearLayout
android:id="@+id/txtreplayToSuggestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txtSuggestion"
android:layout_marginTop="10dp"
android:background="@drawable/items"
android:gravity="right"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="right"
android:text="پاسخ به پیشنهاد"
android:textAlignment="gravity"
android:textSize="20sp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/roundcorner"
android:padding="10dp"
android:text=" ژنرال ارتش ترکیه روز چهارشنبه ۳۰ تیرماه رسما به تلاش برای انجام کودتا در این کشور متهم شدند. همزمان، ۲۶۲ قاضی و دادستان دادگاههای نظامی و ۹۰۰ پلیس در آنکارا پایتخت ترکیه نیز از سمت خود تعلیق شدهاند.
شش هزار و ۵۰۰ نفر دیگر از کارکنان وزارت آموزش ملی این کشور نیز از سمتهای خود تعلیق شدهاند. این اقدام یک روز پس از اخراج بیش از ۱۵ هزار معلم از سوی این وزارتخانه صورت میگیرد.
دولت ترکیه روز سهشنبه همچنین مجوز تدریس ۲۱ هزار معلم شاغل در بخش خصوصی را لغو کرده بود.
با احتساب این ارقام، تاکنون بیش از ۶۰ هزار قاضی، معلم، سرباز، پلیس و کارمند دولت از کار خود تعلیق شدهاند." />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtreplayToSuggestion"
android:text="ارسال ایمیل" />
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
因此,出于我的项目的目的,我需要创建另一个类,除了做其他一些东西之外,还要取消订阅它当前订阅的所有主题。但我不知道如何使用列出的{@ 3}}
的取消订阅者功能任何人都可以帮助我,我将如何使用该功能?
答案 0 :(得分:2)
我并不完全明白你必须做什么,但是当你订阅一个主题时,你可以这样写:
sub = rospy.subscriber("/cameras/left_hand_camera/image",Image,self.callback_viewer)
然后当您必须取消订阅时,您必须这样做:
sub.unregister()
希望这能回答你的问题。